Skip to content

判断变量是否为数组

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: true
const 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 ]