数组常用方法总结

56次阅读

共计 1559 个字符,预计需要花费 4 分钟才能阅读完成。

不会改变原数组的方法

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end(不包括 end)决定的原数组的浅拷贝。原始数组不会被改变。

// 语法:arr.slice();
// [0, end]
arr.slice(begin);
// [begin, end]
arr.slice(begin, end);
// [begin, end)
// 示例
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3);
// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']

concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
concat 方法创建一个新的数组,它由被调用的对象中的元素组成,每个参数的顺序依次是该参数的元素(如果参数是数组)或参数本身(如果参数不是数组)。它不会递归到嵌套数组参数中。

concat 方法不会改变 this 或任何作为参数提供的数组,而是返回一个浅拷贝,它包含与原始数组相结合的相同元素的副本。原始数组的元素将复制到新数组中,如下所示:

对象引用(而不是实际对象):concat 将对象引用复制到新数组中。原始数组和新数组都引用相同的对象。也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。这包括也是数组的数组参数的元素。
数据类型如字符串,数字和布尔(不是 String,Number 和 Boolean 对象):concat 将字符串和数字的值复制到新数组中。

var array1 = ['a', 'b', 'c'];
var array2 = ['d', 'e', 'f'];
console.log(array1.concat(array2));
// expected output: Array ["a", "b", "c", "d", "e", "f"]

遍历数组的方法

forEach() 方法对数组的每个元素执行一次提供的函数。

// 语法
arr.forEach(callback,thisArg);
// callback
// 为数组中每个元素执行的函数,该函数接收三个参数:// 1.currentValue
// 数组中正在处理的当前元素。// 2.index 可选
// 数组中正在处理的当前元素的索引。// 3.array 可选
// forEach() 方法正在操作的数组。// thisArg 可选
// 可选参数。当执行回调函数时用作 this 的值 (参考对象)
// 示例
var array1 = ['a', 'b', 'c'];
array1.forEach((element) => console.log(element));

改变原数组的方法

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组, 并以数组形式返回被修改的内容。此方法会改变原数组。

// 示例
var myFish = ["angel", "clown", "mandarin", "sturgeon"];
var removed = myFish.splice(2, 0, "drum");
// 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"]
// 被删除的元素: [], 没有元素被删除
var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, "trumpet");
// 运算后的 myFish: ["angel", "clown", "trumpet", "sturgeon"]
// 被删除的元素: ["drum"]

正文完
 0