自学内容网 自学内容网

JS常用数组方法总结

JavaScript 数组(Array)提供了许多内置方法来处理数组元素,这些方法大致可以分为几类:添加/删除元素、遍历数组、搜索元素、转换数组、排序和归约(reduce)等。下面我将详细介绍一些常用的数组方法,并给出示例代码。

1. 添加/删除元素

push()

向数组的末尾添加一个或多个元素,并返回新的长度

let arr = [1, 2, 3];  
arr.push(4, 5);  
console.log(arr); // [1, 2, 3, 4, 5]
pop()

删除并返回数组的最后一个元素,如果数组为空则返回undefined

let arr = [1, 2, 3];  
let lastElement = arr.pop();  
console.log(arr); // [1, 2]  
console.log(lastElement); // 3
unshift()

向数组的开头添加一个或多个元素,并返回新的长度。

let arr = [1, 2, 3];  
arr.unshift(0);  
console.log(arr); // [0, 1, 2, 3]
shift()

删除并返回数组的第一个元素,如果数组为空则返回undefined

let arr = [1, 2, 3];  
let firstElement = arr.shift();  
console.log(arr); // [2, 3]  
console.log(firstElement); // 1
splice()

通过删除现有元素和/或添加新元素来更改一个数组的内容。

let arr = [1, 2, 3, 4, 5];  
arr.splice(2, 2, 'a', 'b'); // 从索引2开始,删除2个元素,然后添加'a'和'b'  
console.log(arr); // [1, 2, 'a', 'b', 5]

2. 遍历数组

forEach()

对数组的每个元素执行一次提供的函数。

let arr = [1, 2, 3];  
arr.forEach(function(element) {  
  console.log(element);  
});  
// 输出:  
// 1  
// 2  
// 3
map()

创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

let arr = [1, 2, 3];  
let doubled = arr.map(function(element) {  
  return element * 2;  
});  
console.log(doubled); // [2, 4, 6]
entries()、keys()、values()
  • entries():返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
  • keys():返回一个新的Array Iterator对象,该对象包含数组中每个索引的键。
  • values():返回一个新的Array Iterator对象,该对象包含数组中每个索引的值。

    这三个方法都可以与for...of循环一起使用,来遍历数组。

let arr = ['a', 'b', 'c'];  
  
for (let [index, value] of arr.entries()) {  
    console.log(index, value);  
}  
  
for (let index of arr.keys()) {  
    console.log(index);  
}  
  
for (let value of arr.values()) {  
    console.log(value);  
}
 flat()

flat()方法用于将多维数组转换成一维数组,并返回一个新数组。该方法可以接受一个可选的参数,表示展开的深度。

let arr = [1, [2, [3, [4, 5]]], 6];  
console.log(arr.flat(Infinity)); // [1, 2, 3, 4, 5, 6]  
  
// 展开一层  
console.log(arr.flat(1)); // [1, 2, [3, [4, 5]], 6]
flatMap()

flatMap()方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与map()flat(1)的组合相似,但flatMap()更简洁。

let arr = [1, 2, 3, 4];  
const doubledAndFlattened = arr.flatMap(x => [x, x * 2]);  
console.log(doubledAndFlattened); // [1, 2, 2, 4, 3, 6, 4, 8]

3. 搜索元素

indexOf()

返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

let arr = [2, 5, 9];  
console.log(arr.indexOf(2)); // 0  
console.log(arr.indexOf(7)); // -1
find()

返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined

let arr = [5, 12, 8, 130, 44];  
let found = arr.find(function(element) {  
  return element > 10;  
});  
console.log(found); // 12
 some() 方法

 some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个布尔值。

let array = [1, 2, 3, 4, 5];  
  
// 测试数组中是否至少有一个元素大于3  
let hasLargeNumbers = array.some(function(element) {  
  return element > 3;  
});  
  
console.log(hasLargeNumbers); // true  
  
// 测试数组中是否所有元素都大于3(应该返回false)  
let allLargeNumbers = array.some(function(element) {  
  return element > 3; // 注意:some会在找到第一个符合条件的元素时停止搜索  
});  
  
// 但为了检查所有元素是否都大于3,应使用every()  
let allReallyLargeNumbers = array.every(function(element) {  
  return element > 3;  
});  
  
console.log(allLargeNumbers); // true,因为存在大于3的元素  
console.log(allReallyLargeNumbers); // false,因为不是所有元素都大于3
  includes()

 includes()方法用于判断数组中是否包含某个元素,返回布尔值。

let arr = [1, 2, 3, 4, 5];  
console.log(arr.includes(3)); // true  
console.log(arr.includes(6)); // false
findIndex()

虽然已经在之前提及,但值得再次强调其重要性。findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。

let arr = [5, 12, 8, 130, 44];  
let index = arr.findIndex(function(element) {  
    return element > 10;  
});  
console.log(index); // 1

4. 排序

sort()

对数组的元素进行排序,并返回数组。

let arr = [10, 1, 4, 7, 9];  
arr.sort(function(a, b) {  
  return a - b;  
});  
console.log(arr); // [1, 4, 7, 9, 10]

5. 归约(Reduce)

reduce()

对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

let arr = [1, 2, 3, 4];  
let sum = arr.reduce(function(accumulator, currentValue) {  
  return accumulator + currentValue;  
}, 0);  
console.log(sum); // 10

6. 数组的合并

在JavaScript中,有多种方式可以合并数组。这里列出两种常见的方法:

使用concat()

concat() 方法用于合并两个或多个数组。此方法不会改变现有的数组,而是返回一个新数组。

let arr1 = [1, 2, 3];  
let arr2 = [4, 5, 6];  
let arr3 = arr1.concat(arr2);  
console.log(arr3); // [1, 2, 3, 4, 5, 6]
使用扩展运算符(...)

ES6引入了扩展运算符,它允许一个数组表达式或字符串在需要多个参数(用于函数调用)或多个元素(用于数组字面量)的地方展开。

let arr1 = [1, 2, 3];  
let arr2 = [4, 5, 6];  
let arr4 = [...arr1, ...arr2];  
console.log(arr4); // [1, 2, 3, 4, 5, 6]

7. 数组填充

fill()

fill()方法用于将一个固定值填充到一个数组中,从起始索引到终止索引(但不包括终止索引),默认从数组的第一个元素开始到最后一个元素结束。

let arr = [1, 2, 3, 4, 5];  
arr.fill(0);  
console.log(arr); // [0, 0, 0, 0, 0]  
  
// 从索引1开始到索引3(不包括3)填充'a'  
arr.fill('a', 1, 3);  
console.log(arr); // [0, 'a', 'a', 4, 5]


原文地址:https://blog.csdn.net/qq_29579625/article/details/142411940

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!