0%

JavaScript小技巧

数组

找出数组中的最大值、最小值

// ES5
Math.max.apply(null, arr);
Math.min.apply(null, arr);

// ES6
Math.max(...arr);
Math.min(...arr);

添加方法

使用正则表达式给所有 string 对象添加 trim 方法

String.prototype.trim = function () {
return this.replace(/(^\s*)|(\s*$)/g, "");
};

将多维数组变成一维数组

var arr = [1, ["2", [{ name: "renzhao" }, 4], "哈哈"], true];
function getArr(arr) {
var result = [];
flatten(arr);
function flatten(arr) {
arr.forEach((v, i) => {
if (v instanceof Array) {
flatten(v);
} else {
result.push(v);
}
});
}
return result;
}
console.log(getArr(arr));

简单的方法实现一个函数生成 1~n 的数组

function range(n) {
return Array.apply(null, Array(n)).map(function (v, i) {
return i + 1;
});
}
//ES6
function range(n) {
return [...Array(n).keys()].map((v, i) => i + 1);
}
function range(n) {
return Array.from({ length: n }, (v, i) => i + 1);
}

随机打乱一个数组

arr.sort(() => 0.5 - Math.random());

数字隔三位加逗号

function formatNumber(n) {
var str = n.toString();
var newStr = "";
var count = 0;

for (var i = str.length - 1; i >= 0; i--) {
if (count % 3 == 0 && count != 0) {
newStr = str.charAt(i) + "," + newStr;
} else {
newStr = str.charAt(i) + newStr;
}
count++;
}
return newStr;
}

JavaScript 机试

https://github.com/leftstick/fe-interview