var fruits = []; fruits.push("lemon", "lemon", "lemon", "lemon");
而不是推送相同的元素,怎么可以这样写一次:
fruits.push("lemon" * 4 times)
对于基元,使用.fill:
.fill
var fruits = new Array(4).fill('Lemon'); console.log(fruits);
对于非基本fill元素,请不要使用,因为数组中的所有元素都将引用内存中的同一对象,因此对数组中一项的更改会影响数组中的每一项。
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:
Array.from
var fruits = Array.from( { length: 4 }, () => ({ Lemon: 'Lemon' }) ); console.log(fruits);
有关如何以这种方式创建2D数组的示例:
var fruits = Array.from( { length: 2 }, // outer array length () => Array.from( { length: 3 }, // inner array length () => ({ Lemon: 'Lemon' }) ) ); console.log(fruits);