我有一个对象数组:
[{
{
"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中的可能性如何?
答案 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);
}, []);