首页 > 解决方案 > 如果它与id匹配,如何在对象数组内的对象中添加一个属性

问题描述

我是角度的新手,如果有人提供帮助,将面临一个问题,那么我有一系列如下所示的对象

signals = [{
'signalID': '123'
},{
'signalID': '233'
},{
'signalID': '333'
},{
'signalID': '433'
},{
'signalID': '533'
},{
'signalID': '633'
},{
'signalID': '733'
}]

我有一个像下面这样的对象

signalOrder = {
333:1,
433:2,
533:3
}

如果signalId在signalOrder对象中匹配,我想向信号数组添加一个属性作为orderNo,否则orderNo应该为null。预期结果:

signals = [{
'signalID': '123',
'orderNo':null
},{
'signalID': '233',
'orderNo':null
},{
'signalID': '333',
'orderNo':1
},{
'signalID': '433',
'orderNo':2
},{
'signalID': '533',
'orderNo':3
},{
'signalID': '633',
'orderNo':null
},{
'signalID': '733',
'orderNo':null
}]

我希望它应该与 javascript map 功能一起使用,但不知道如何使用它。

标签: javascriptangulartypescript

解决方案


你可以这样做:

let signals = [{'signalID': '123'},{'signalID': '233'},{'signalID': '333'},{'signalID': '433'},{'signalID': '533'},{'signalID': '633'},{'signalID': '733'}];

let signalOrder = {333:1,433:2,533:3}

let mapped = signals.map(x=>{
  return {
    signalID:x.signalID,
    orderNo:signalOrder[x.signalID]
  }
})

console.log(mapped)


推荐阅读