Javascript 用另一个数组项填充数组字段

Javascript 用另一个数组项填充数组字段,javascript,angular,Javascript,Angular,我有这个代码段,我想在trade数组,counter中再添加一个字段 例如,如果我有count=[3,5,2]我想获得: tradeArray = ['ITD', 'TND', 'TRD'] trade = [] this.tradeArray.map(val => this.trade.push({ "value": val, "checked": false, })) 我希望通过这个例子你能理解我想要得到什么。我试过这样的方法: 0: {value: "IT

我有这个代码段,我想在
trade
数组,
counter
中再添加一个字段

例如,如果我有
count=[3,5,2]
我想获得:

tradeArray = ['ITD', 'TND', 'TRD']
trade = []

this.tradeArray.map(val => this.trade.push({
      "value": val,
      "checked": false,
}))
我希望通过这个例子你能理解我想要得到什么。我试过这样的方法:

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)
}))

如何修改以获得所需内容?谢谢你抽出时间

如果您确定
计数
数组的顺序与
交易数组
的顺序相同,则可以使用
.map
提供的索引

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]}

如果您确定
计数
数组的顺序与
交易数组
的顺序相同,则可以使用
.map
提供的索引

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]}

您希望将
tradeArray
的索引与
count
数组中的相同索引相匹配,以从
count

consttradearray=['ITD','TND','TRD'],
计数=[3,5,2];
const res=tradeArray.map((v,i)=>({value:v,checked:false,count:count[i]}));

console.log(res)
您希望将
tradeArray
的索引与
count
数组中的相同索引相匹配,以从
count

consttradearray=['ITD','TND','TRD'],
计数=[3,5,2];
const res=tradeArray.map((v,i)=>({value:v,checked:false,count:count[i]}));

console.log(res)
首先,不要只使用
map
来迭代集合。取而代之的是,将其用于预期用途:它将函数投影到集合中的每个项,并根据函数的返回值创建一个新集合(在本例中为数组)。如果您只想迭代,请改用
forEach

有多种可能的解决方案,但基本上您需要的是
tradeArray
中的“交易”与计数中的值之间的某种关联。您可以使用索引位置:

count = [3, 5, 2]
this.trade = this.tradeArray.map((val, index) => {
  "value": val,
  "checked": false,
  "counter": count[index]
})

首先,不要仅仅使用
map
来迭代集合。取而代之的是,将其用于预期用途:它将函数投影到集合中的每个项,并根据函数的返回值创建一个新集合(在本例中为数组)。如果您只想迭代,请改用
forEach

有多种可能的解决方案,但基本上您需要的是
tradeArray
中的“交易”与计数中的值之间的某种关联。您可以使用索引位置:

count = [3, 5, 2]
this.trade = this.tradeArray.map((val, index) => {
  "value": val,
  "checked": false,
  "counter": count[index]
})

你从哪里得到这些信息的?它们只是计数器,有多少次出现在列表中?我猜你不明白映射函数是用来做什么的。map函数获取列表的每个值,并使用该函数对其进行变异。返回值将是一个包含变异值的列表。您所做的不是映射这些值,而是在它们之间循环,使用forEach@Isitar当函数实际上没有“改变”原始值时,您可能希望避免使用“mutate”一词value@FedericoklezCulloca没错,它产生了一个新的转换值。你从哪里得到这个信息的,countTRD=2它们只是计数器,列表中出现了多少次
ITD
TRD
TND
。我猜您不明白map函数的作用。map函数获取列表的每个值,并使用该函数对其进行变异。返回值将是一个包含变异值的列表。您所做的不是映射这些值,而是在它们之间循环,使用forEach@Isitar当函数实际上没有“改变”原始值时,您可能希望避免使用“mutate”一词value@FedericoklezCulloca没错,它生成了一个新的转换值。这个答案误用了
map
方法。使用
forEach
代替此答案误用了
map
方法。改用
forEach