在开发中我们常常会使用一些操作数组的方法,来得到我们想要的数据,以下是操作数组的一些方法,如有遗漏请指正。
push() 向数组的末尾添加一个或多个元素,并返回新的长度。
const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
pop() 从数组的末尾删除一个元素,并返回该元素的值。
const arr = [1, 2, 3];
const removed = arr.pop();
console.log(arr); // [1, 2]
console.log(removed); // 3
unshift() 向数组的开头添加一个或多个元素,并返回新的长度。
const arr = [1, 2, 3];
arr.unshift(0);
console.log(arr); // [0, 1, 2, 3]
shift() 从数组的开头删除一个元素,并返回该元素的值。
const arr = [1, 2, 3];
const removed = arr.shift();
console.log(arr); // [2, 3]
console.log(removed); // 1
splice() 从数组中添加、删除或替换元素。
const arr = [1, 2, 3];
arr.splice(1, 1, 'a', 'b');
console.log(arr); // [1, 'a', 'b', 3]
slice() 从数组中提取某个范围的元素,返回一个新数组。
const arr = [1, 2, 3];
const copy = arr.slice(0, 2);
console.log(copy); // [1, 2]
concat() 将两个或多个数组合并为一个新数组。
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = arr1.concat(arr2);
console.log(arr3); // [1, 2, 3, 4]
join() 将数组中所有元素转换为字符串,返回一个字符串。
const arr = [1, 2, 3];
const joined = arr.join(',');
console.log(joined); // "1,2,3"
toString() 将数组转换为一个字符串,并返回该字符串。
let arr = [1, 2, 3];
let str = arr.toString();
console.log(str); // '1,2,3'
reverse() 颠倒数组中元素的顺序。
const arr = [1, 2, 3];
arr.reverse();
console.log(arr); // [3, 2, 1]
sort() 对数组中的元素进行排序。
const arr = [3, 1, 2];
arr.sort();
console.log(arr); // [1, 2, 3]
indexOf() 返回数组中第一个与指定值匹配的元素的索引。
let arr = ['a', 'b', 'c'];
let index = arr.indexOf('b');
console.log(index); // 1
lastIndexOf() 返回数组中最后一个与指定值匹配的元素的索引。
let arr = ['a', 'b', 'c', 'b'];
let index = arr.lastIndexOf('b');
console.log(index); // 3
includes() 判断数组中是否包含指定的值,返回一个布尔值。
const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false
forEach() 对数组中的每个元素执行一个函数。
const array = [1, 2, 3];
array.forEach(function(element) {
console.log(element);
});
// Output: 1 2 3
map() 对数组中的每个元素执行一个函数,并返回一个新数组。
const array = [1, 2, 3];
const newArray = array.map(function(element) {
return element * 2;
});
console.log(newArray); // [2, 4, 6]
filter() 根据指定条件过滤数组中的元素,并返回一个新数组。
const array = [1, 2, 3, 4, 5];
const newArray = array.filter(function(element) {
return element > 2;
});
console.log(newArray); // [3, 4, 5]
reduce() 对数组中的元素执行一个函数,并将结果累积到一个值中。
const array = [1, 2, 3, 4, 5];
const result = array.reduce(function(accumulator, currentValue) {
return accumulator + currentValue;
}, 0);
console.log(result); // 15
reduceRight() 从数组的右侧开始对数组中的元素执行一个函数,并将结果累积到一个值中。
const array = ["a", "b", "c", "d"];
const result = array.reduceRight(function(accumulator, currentValue) {
return accumulator + currentValue;
});
console.log(result); // "dcba"
every() 判断数组中的每个元素是否符合指定条件,如果都符合则返回 true,否则返回 false。
const array = [1, 2, 3, 4, 5];
const result = array.every(function(element) {
return element > 0;
});
console.log(result); // true
some() 判断数组中是否有符合指定条件的元素,如果有则返回 true,否则返回 false。
const array = [1, 2, 3, 4, 5];
const result = array.some(function(element) {
return element < 0;
});
console.log(result); // false
find() 查找数组中符合指定条件的元素,并返回该元素。
const array = [1, 2, 3, 4, 5];
const result = array.find(function(element) {
return element > 3;
});
console.log(result); // 4
findIndex() 查找数组中符合指定条件的元素的索引,并返回该索引值。
const array = [1, 2, 3, 4, 5];
const result = array.findIndex(function(element) {
return element > 3;
});
console.log(result); // 3
flat() 将多维数组转换为一维数组。
const arr = [1, 2, [3, 4, [5, 6]]];
const flattened = arr.flat();
console.log(flattened); // [1, 2, 3, 4, 5, 6]
flatMap() 对数组中的每个元素执行一个函数,并将结果压缩成一个新数组。
const arr = [1, 2, 3];
const result = arr.flatMap((item) => [item * 2]);
console.log(result); // [2, 4, 6]
使用flatMap()方法对数组中的每个元素执行一个函数,并将结果压缩成一个新数组。这个例子中,对于数组中的每个元素,将其乘以2并将其放入一个新的数组中。
结果是一个新的一维数组[2, 4, 6]。