gpt4 book ai didi

javascript - 根据每个数组项内的值重复数组项 x 次

转载 作者:行者123 更新时间:2023-12-03 00:56:17 25 4
gpt4 key购买 nike

我正在使用 javascript 并尝试根据每个项目内的匹配数来复制数组项目。我相信我需要使用 arr.map() 来完成此任务,但在评估逻辑方面遇到了问题。

因此,在下面的示例中,项目 1 将被重复 3 次,项目 2 将被重复 1 次。感谢您的帮助和您的时间。

我当前的数组如下所示:

"cards" = [
{
"text": "Item 1"
"matches": 3
}
{
"text": "Item 2"
"matches": 1
}
]

新数组看起来像:

"newCards" = [
{
"text": "Item 1"
"matches": 3
}
{
"text": "Item 1"
"matches": 3
},
{
"text": "Item 1"
"matches": 3
},
{
"text": "Item 2"
"matches": 1
},
{
"text": "Item 2"
"matches": 1
}
]

尝试使用 map 功能

let cardCounter = 0

let cardMap = cards.map(function (item){
cardCounter++
if (cardCounter < item.matches) {
// Not really sure what to return here....
// tried to return
// return[item, item]
// this returns an array where the first two keys are arrays and the rest undefined.
}

})

最佳答案

我认为 map 不是一个好的选择,因为它执行一个值到一个值的映射。如果您有 lodash 可用,您可以使用 flatMap 在这种情况下您的 return[item, item] 想法会起作用。如果没有,那么也许使用reduce。像这样的东西:

let cardMap = cards.reduce(function (acc, item){
for (let i = 0; i < item.matches; i++) {
acc.push(item);
}
return acc;
}, []);

关于javascript - 根据每个数组项内的值重复数组项 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52823866/

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