判断变量是否为数组
js
function isArray(o) { // 判断变量是否为数组
return Object.prototype.toString.call(o) == '[object Array]';
}function isArray(o) { // 判断变量是否为数组
return Object.prototype.toString.call(o) == '[object Array]';
}删除数组指定下标的元素 ^finished
js
function removeElement(arr, index) {
arr.splice(index, 1);
return arr;
}function removeElement(arr, index) {
arr.splice(index, 1);
return arr;
}示例用法:
js
let arr = [1, 2, 3, 4, 5];
let index = 2;
arr = removeElement(arr, index);
console.log(arr);let arr = [1, 2, 3, 4, 5];
let index = 2;
arr = removeElement(arr, index);
console.log(arr);输出结果:
js
[1, 2, 4, 5][1, 2, 4, 5]找到数组中的最大/最小值
js
// 简写
const arr = [2, 8, 15, 4]
Math.max(...arr) // 15
Math.min(...arr) // 2// 简写
const arr = [2, 8, 15, 4]
Math.max(...arr) // 15
Math.min(...arr) // 2遍历代替for循环
我们一般都用 for 循环去遍历一个数组,现在我们可以用 for...of 遍历值,使用 for...in 遍历索
js
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"合并数组
js
let arr1 = [20, 30]
// 常规写法
let arr2 = arr1.concat([60, 80])
// [20, 30, 60, 80]
// 简写
let arr2 = [...arr1, 60, 80]
// [20, 30, 60, 80]let arr1 = [20, 30]
// 常规写法
let arr2 = arr1.concat([60, 80])
// [20, 30, 60, 80]
// 简写
let arr2 = [...arr1, 60, 80]
// [20, 30, 60, 80]数组去重
js
const removeDuplicates = (arr) => [...new Set(arr)];
console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6]));
// Result: [ 1, 2, 3, 4, 5, 6 ]const removeDuplicates = (arr) => [...new Set(arr)];
console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6]));
// Result: [ 1, 2, 3, 4, 5, 6 ]数组得到不重复的部分
数组得到重复的部分
一次性根据下标删除多个数组元素
数组重排序
重排序是有问题的,因为sort快排的原因导致并不是每一个元素都是被交换的,所以不是完全公平的重排。
建议使用洗牌算法。
js
const shuffle = (arr) => arr.sort(() => Math.random() - 0.5)
const arr = [1, 2, 3, 4, 5]
console.log(shuffle(arr))//[3,2,4,5,1]const shuffle = (arr) => arr.sort(() => Math.random() - 0.5)
const arr = [1, 2, 3, 4, 5]
console.log(shuffle(arr))//[3,2,4,5,1]检查数组是否为空
js
const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;
isNotEmpty([1, 2, 3]);
// Result: trueconst isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;
isNotEmpty([1, 2, 3]);
// Result: true打乱数组
js
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4]));
// Result: [ 1, 4, 3, 2 ]const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4]));
// Result: [ 1, 4, 3, 2 ]
liang14658fox