您的位置:

数组添加元素的多种方法

一、push()方法

JavaScript的数组对象提供了一个名为push()的方法,可以用于向数组的末尾添加一个或多个元素。

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

该方法会直接修改原数组,返回值为添加元素后数组的长度。

二、unshift()方法

除了使用push()方法向数组末尾添加元素外,还可以使用unshift()方法向数组的开头添加元素。

let arr = [2, 3, 4];
arr.unshift(1); // [1, 2, 3, 4]
arr.unshift(-2, -1, 0); // [-2, -1, 0, 1, 2, 3, 4]

该方法同样直接修改原数组,返回值为添加元素后数组的长度。

三、splice()方法

除了在数组末尾或开头添加元素外,还可以通过splice()方法在数组的任意位置添加元素。该方法可以接受多个参数。

  • 第一个参数为添加或删除的位置,必需。
  • 第二个参数为要删除的元素个数(如果不删除元素,则为0),可选。
  • 第三个及以后的参数为要添加的新元素,可选。
let arr = [1, 2, 3];
arr.splice(1, 0, 1.5); // [1, 1.5, 2, 3]
arr.splice(2, 1, 2.5, 2.8); // [1, 1.5, 2.5, 2.8, 3]

该方法同样直接修改原数组,返回值为被删除的元素(如果没有被删除则返回空数组)。

四、concat()方法

concat()方法不会直接修改原数组,而是返回一个新数组,该新数组包含原数组和要添加的元素。

let arr1 = [1, 2];
let arr2 = [3, 4];
let arr3 = arr1.concat(arr2); // [1, 2, 3, 4]

五、Array.from()方法

Array.from()方法可以将类数组对象或可迭代对象转换为数组,同时可以传入一个映射函数对数组中的元素进行转换。

let str = 'hello';
let arr = Array.from(str); // ['h', 'e', 'l', 'l', 'o']

如果需要在新数组中添加元素,可以结合push()方法一起使用。

let arr1 = [1, 2];
let arr2 = [3, 4];
let arr = Array.from(arr1).concat(arr2); // [1, 2, 3, 4]

六、展开运算符(...)

展开运算符可以将数组或类数组对象(例如arguments对象)中的所有元素展开为一个新数组,同时也可以在展开时添加新元素。

let arr1 = [1, 2];
let arr2 = [3, 4];
let arr = [...arr1, ...arr2]; // [1, 2, 3, 4]

在展开时添加新元素:

let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]

七、Array.push.apply()方法(已废弃)

在ES5中,还可以通过Array.push.apply()方法向数组添加元素。

let arr = [1, 2, 3];
Array.prototype.push.apply(arr, [4, 5]); // [1, 2, 3, 4, 5]

但是,在ES6中,已经可以使用展开运算符来实现同样的效果,因此Array.push.apply()方法已经被废弃。

八、总结

数组是JavaScript中最常用的数据结构之一,添加元素的方式也有多种。选择不同的方式可以根据实际需求来决定,例如在中间位置添加元素时可以使用splice()方法,如果要添加元素的个数较多可以使用concat()方法或展开运算符,如果要添加的元素只有一个可以使用push()方法或unshift()方法。