tradeArray = ['ITD', 'TND', 'TRD']
trade = []
this.tradeArray.map(val => this.trade.push({
"value": val,
"checked": false,
}))
我有这个代码段,我想再向trade
数组counter
添加一个字段。
例如,如果我有count = [3, 5, 2]
,我想获得:
0: {value: "ITD", checked: false, counter: 3}
1: {value: "TND", checked: false, counter: 5}
2: {value: "TRD", checked: false, counter: 2}
我希望通过本示例,您将了解我想要获得的东西。我尝试过这样的事情:
count = [3, 5, 2]
this.tradeArray.map(val => this.trade.push({
"value": val,
"checked": false,
"counter": this.count.map(val => val)
}))
但这会给我
0: {value: "ITD", checked: false, counter: [3, 5, 2]}
1: {value: "TND", checked: false, counter: [3, 5, 2]}
2: {value: "TRD", checked: false, counter: [3, 5, 2]}
如何修改以获得我想要的东西?谢谢您的时间!
答案 0 :(得分:3)
首先,不要仅使用map
来遍历集合。取而代之的是将其用于要使用的用途:它将函数投影到集合中的每个项目,并根据函数的返回值创建一个新的集合(在您的情况下为Array)。如果只想迭代,请改用forEach
。
有多种可能的解决方案,但是基本上您想要的是tradeArray
中的“交易”与计数内的值之间的某种关联。您可以为此使用索引位置:
var countITD = 3, countTND = 5, countTRD = 2;
var tradeArray = ['ITD', 'TND', 'TRD']
var counts = [countITD, countTND, countTRD]
var trade = tradeArray.map((name, index) => {
return {value: name, checked: false, counter: counts[index]};
});
// -> [{value: 'ITD', checked: false, counter: 3}, ..., {value: 'TRD', checked: false, counter: 2}]
答案 1 :(得分:2)
您想将tradeArray
的索引与count
数组中的相同索引相匹配,以从count
获得关联的值
const tradeArray = ['ITD', 'TND', 'TRD'],
count = [3, 5, 2];
const res = tradeArray.map((v,i)=> ({value:v, checked:false, count:count[i]}));
console.log(res)
答案 2 :(得分:0)
如果您确定count
数组与tradeArray
的顺序相同,则可以使用.map
提供的索引
count = [3, 5, 2]
this.trade = this.tradeArray.map((val, index) => {
"value": val,
"checked": false,
"counter": count[index]
})