在JavaScript中,Array.prototype.push()
方法用于将一个或多个元素添加到数组的末尾,并返回新的数组长度。如果你想要复制一个数组并且确保没有重复的键值,你可以使用以下几种方法:
concat()
方法concat()
方法可以合并两个或多个数组,并且不会改变现有的数组,而是返回一个新数组。
let originalArray = [1, 2, 3];
let newArray = originalArray.concat();
扩展运算符 ...
可以将一个数组的所有元素展开到新的数组中。
let originalArray = [1, 2, 3];
let newArray = [...originalArray];
Array.from()
Array.from()
方法可以从一个类似数组或可迭代的对象创建一个新的数组实例。
let originalArray = [1, 2, 3];
let newArray = Array.from(originalArray);
forEach()
循环如果你想要在复制的同时进行一些额外的操作,比如过滤掉某些元素,你可以使用 forEach()
循环。
let originalArray = [1, 2, 3];
let newArray = [];
originalArray.forEach(item => {
if (!newArray.includes(item)) {
newArray.push(item);
}
});
filter()
方法filter()
方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
let originalArray = [1, 2, 3];
let newArray = originalArray.filter((item, index) => originalArray.indexOf(item) === index);
JSON.parse(JSON.stringify(array))
,但这种方法有局限性,比如不能复制函数、undefined、循环引用等。以上方法都可以有效地复制数组而不包含重复的键值,选择哪一种取决于你的具体需求和场景。
领取专属 10元无门槛券
手把手带您无忧上云