JavaScript 操作数组的常用和不常用方法

本文列举了JavaScript中用于操作数组的一系列方法,包括向数组两端添加或删除元素(push、pop、unshift、shift)、修改数组内容(splice)、提取子数组(slice)、合并数组(concat)、转换为字符串(join、toString)、改变数组顺序(reverse、sort)、查找元素位置(indexOf、lastIndexOf、includes)、遍历与应用函数(forEach、map、filter、reduce、reduceRight)、以及判断元素条件(every、some、find、findIndex)、处理多维数组(flat、flatMap)等。这些方法是JavaScript编程中处理数据的重要工具。
摘要由CSDN通过智能技术生成

在开发中我们常常会使用一些操作数组的方法,来得到我们想要的数据,以下是操作数组的一些方法,如有遗漏请指正。

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]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值