Javascript 循环数组,将数据放置在对象内

Javascript 循环数组,将数据放置在对象内,javascript,arrays,angular,for-loop,Javascript,Arrays,Angular,For Loop,我有一个基于数字创建数组的函数。 我想在数组的每个对象中放置一个特定的值。但我有问题 代码: 当我看到console.log时,数组是空的。我做错了什么吗?如果你想从一个数字创建一个数组,你可以使用array.from{length:n},其中n是你想要的长度的项数 例如,Array.from{length:4}将创建一个长度为4的数组,其中包含4个未定义的项 即 [未定义,未定义,未定义,未定义] 然后可以使用.map将其转换为任意形状的数组或包含所需对象的数组 比如说 Array.from(

我有一个基于数字创建数组的函数。 我想在数组的每个对象中放置一个特定的值。但我有问题

代码:


当我看到console.log时,数组是空的。我做错了什么吗?

如果你想从一个数字创建一个数组,你可以使用array.from{length:n},其中n是你想要的长度的项数

例如,Array.from{length:4}将创建一个长度为4的数组,其中包含4个未定义的项 即 [未定义,未定义,未定义,未定义]

然后可以使用.map将其转换为任意形状的数组或包含所需对象的数组

比如说

Array.from({ length: 5 }).map((_, i) => ({         
    cardPoints: 0,
    cardValue: 0
}));

或者数组。从{length:10}.map铹,i=>i+1将输出一个包含数字1,2,3…10的10项数组

基本上,您可以使用Array.from从一个数字中获取一个特定长度的数组,然后映射到该数组以获得更有意义的内容

有关更高级的用例,请查看

您正在使用.length来缩减数组并将数组扩展到所需的长度

您的代码可以很好地进行剪切,但是当数组以这种方式扩展时,它会自动填充未定义的对象,所以您的let卡。。。for循环将不起作用

您需要为循环使用索引,并在设置对象之前检查对象是否未定义,以防止覆盖以前的值

请参阅此工作片段:

点卡=[{ 积分:3, 卡值:2 }] 函数updateNumberOfPointCardsnumber{ pointCards.length=数量; 对于let index=0;indexconsole.LogPointCard您的pointcard数组中没有任何值。for循环是否正常工作?
Array.from({ length: 5 }).map((_, i) => ({         
    cardPoints: 0,
    cardValue: 0
}));