知乎用户:@阿安
类数组对象转数组:
var arrlike = {
'0':'a',
'1':'b',
'2':'c',
length: 3
};
var arr1 = Array.prototype.slice.call(arrlike);
// es6
var arr2 = Array.from(arrlike);
console.log(arr1, arr2); // ["a", "b", "c"] ["a", "b", "c"]
漂亮的随机码:
Math.random().toString(16).substring(2); // 14位
Math.random().toString(36).substring(2); // 11位
合并数组:
var a = [1,2,3];
var b = [4,5,6];
var c = a.concat(b);
console.log(c); // [1,2,3,4,5,6]
// es6
c = [...a, ...b];
console.log(c); // [1,2,3,4,5,6]
Array.prototype.push.apply(a, b);
console.log(a); //[1,2,3,4,5,6]
交换值:
var a = 1, b = 2;
a = [b, b = a][0];
console.log('a: ' + a + ', b: ' + b); // a: 2, b: 1
// es6 解构赋值
[a, b] = [b, a];
console.log('a: ' + a + ', b: ' + b); // a: 1, b: 2
将一个数组插入另一个数组的指定位置:
var a = [1,2,3,7,8,9];
var b = [4,5,6];
var insertIndex = 3;
// arrayObject.splice(index,howmany,item1,.....,itemX)
// index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
// howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
// item1, ..., itemX 可选。向数组添加的新项目。
a.splice.call(a, insertIndex, 0, ...b);
// a.splice.apply(a, [].concat(insertIndex, 0, b));
console.log(a); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
快速取数组最大和最小值:
Math.max.apply(Math, [1, 2, 3]); // 3
Math.min.apply(Math, [1, 2, 3]); // 1
// es6
Math.max(...[1, 2, 3]); // 3
Math.min(...[1, 2, 3]); // 1
条件判断:
var a = b && 1;
//相当于:
if (b) {
a = 1;
}else {
a = b;
}
var a = b || 1;
//相当于
if (b) {
a = b;
} else {
a = 1;
}
判断数组:
Object.prototype.toString.call([]) === '[object Array]';
知乎用户:@阿安
类数组对象转数组:
漂亮的随机码:
合并数组:
交换值:
将一个数组插入另一个数组的指定位置:
快速取数组最大和最小值:
条件判断:
判断数组: