查找并替换对象数组javascript中的值

时间:2017-07-20 18:35:21

标签: javascript arrays lodash

我有一个对象数组:

[{
 {
    "enabled": true,
    "deviceID": "eI2K-6iUvVw:APA"
},
{
    "enabled": true,
    "deviceID": "e_Fhn7sWzXE:APA"
},
{
    "enabled": true,
    "deviceID": "e65K-6RRvVw:APA"
},
}]

使用eI2K-6iUvVw:APA的deviceID进行POST请求,我想要做的就是迭代数组,找到deviceID并将enabled值更改为false

javascript中的可能性如何?

2 个答案:

答案 0 :(得分:10)

您可以使用Array#find



let arr = [{
    "enabled": true,
    "deviceID": "eI2K-6iUvVw:APA"
  },
  {
    "enabled": true,
    "deviceID": "e_Fhn7sWzXE:APA"
  },
  {
    "enabled": true,
    "deviceID": "e65K-6RRvVw:APA"
  }
];

const id = 'eI2K-6iUvVw:APA';

arr.find(v => v.deviceID == id).enabled = false;

console.log(arr);




答案 1 :(得分:0)

您可以使用Array.reduce复制禁用新设备的阵列:

const devices = [ /* ... */ ];

const newDevices = devices.reduce((ds, d) => {
  let newD = d;
  if (d.deviceID === 'eI2K-6iUvVw:APA') {
    newD = Object.assign({}, d, { enabled: false });
  }
  return ds.concat(newD);
}, []);