Find and replace value inside an array of objects javascript [duplicate]

人盡茶涼 提交于 2019-12-03 07:56:50

You can use 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);

You could use Array.reduce to copy the array with the new devices disabled:

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);
}, []);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!