Array.prototype.unshift()

基线 广泛可用

此功能已十分成熟,在许多设备和浏览器版本中都能正常工作。它自 2015 年 7 月.

报告反馈

试试看

语法

unshift()Array 实例的方法,它将指定的元素添加到数组的开头,并返回数组的新长度。
unshift()
unshift(element1)
unshift(element1, element2)
unshift(element1, element2, /* …, */ elementN)

js

参数

element1,…,elementN

要添加到 arr 开头的元素。

返回值

描述

调用该方法的对象的新 length 属性。

unshift() 方法将给定值插入到类似数组的对象的开头。

Array.prototype.push()unshift() 的行为类似,但应用于数组的末尾。

请注意,如果多个元素作为参数传递,它们将以块的形式插入到对象的开头,以传递参数的顺序排列。因此,一次n 个参数调用 unshift(),或者用 1 个参数(例如,使用循环)调用 n 次,结果并不相同。

unshift()Array 实例的方法,它将指定的元素添加到数组的开头,并返回数组的新长度。
let arr = [4, 5, 6];

arr.unshift(1, 2, 3);
console.log(arr);
// [1, 2, 3, 4, 5, 6]

arr = [4, 5, 6]; // resetting the array

arr.unshift(1);
arr.unshift(2);
arr.unshift(3);

console.log(arr);
// [3, 2, 1, 4, 5, 6]

参见示例

示例

unshift() 方法是 泛型 的。它只期望 this 值具有 length 属性和整数键属性。虽然字符串也是类似数组的,但此方法不适合应用于字符串,因为字符串是不可变的。

unshift()Array 实例的方法,它将指定的元素添加到数组的开头,并返回数组的新长度。
const arr = [1, 2];

arr.unshift(0); // result of the call is 3, which is the new array length
// arr is [0, 1, 2]

arr.unshift(-2, -1); // the new array length is 5
// arr is [-2, -1, 0, 1, 2]

arr.unshift([-4, -3]); // the new array length is 6
// arr is [[-4, -3], -2, -1, 0, 1, 2]

arr.unshift([-7, -6], [-5]); // the new array length is 8
// arr is [ [-7, -6], [-5], [-4, -3], -2, -1, 0, 1, 2 ]

使用 unshift()

在非数组对象上调用 unshift()

unshift()Array 实例的方法,它将指定的元素添加到数组的开头,并返回数组的新长度。
const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
Array.prototype.unshift.call(arrayLike, 1, 2);
console.log(arrayLike);
// { '0': 1, '1': 2, '4': 4, length: 5, unrelated: 'foo' }

const plainObj = {};
// There's no length property, so the length is 0
Array.prototype.unshift.call(plainObj, 1, 2);
console.log(plainObj);
// { '0': 1, '1': 2, length: 2 }

规范

unshift() 方法读取 thislength 属性。它将范围为 0length - 1 的所有索引向右移动参数的数量(将其值增加该数量)。然后,它从 0 开始,使用传递给 unshift() 的参数设置每个索引。最后,它将 length 设置为先前的长度加上预先附加的元素数量。
规范
# ECMAScript 语言规范

浏览器兼容性

sec-array.prototype.unshift

另请参阅