gpt4 book ai didi

javascript - 如何将相同的元素添加到javascript数组n次

转载 作者:行者123 更新时间:2023-11-30 06:20:53 25 4
gpt4 key购买 nike

var fruits = [];
fruits.push("lemon", "lemon", "lemon", "lemon");

与其推送相同的元素,不如像这样写一次:

fruits.push("lemon" * 4 times)

最佳答案

对于原语,使用.fill:

var fruits = new Array(4).fill('Lemon');
console.log(fruits);

对于非基元,不要使用fill,因为这样数组中的所有元素都将引用内存中的同一个对象,所以对数组中的一项的突变将影响数组中的每一项数组。

const fruits = new Array(4).fill({ Lemon: 'Lemon' });

fruits[0].Apple = 'Apple';
console.log(JSON.stringify(fruits));


// The above doesn't work for the same reason that the below doesn't work:
// there's only a single object in memory

const obj = { Lemon: 'Lemon' };

const fruits2 = [];
fruits2.push(obj);
fruits2.push(obj);
fruits2.push(obj);
fruits2.push(obj);

fruits2[0].Apple = 'Apple';
console.log(JSON.stringify(fruits2));

相反,在每次迭代时显式创建对象,这可以使用 Array.from 完成:

var fruits = Array.from(
{ length: 4 },
() => ({ Lemon: 'Lemon' })
);
console.log(fruits);

有关如何以这种方式创建二维数组的示例:

var fruits = Array.from(
{ length: 2 }, // outer array length
() => Array.from(
{ length: 3 }, // inner array length
() => ({ Lemon: 'Lemon' })
)
);
console.log(fruits);

关于javascript - 如何将相同的元素添加到javascript数组n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com