我希望修改对象中的值,如果它的键存在于数组中,
可能是Object.keys或indexOf()的一些组合。
所以基本上我有一个看起来像这样的对象
{
'9': true,
'10': false,
'11': true,
'12': true,
'13': true,
'14': true,
'15': true,
'16': true,
'17': true,
'18': true,
'19': true,
}
和一个看起来像这样的数组;
['10','15','18']
我希望最终得到这个;
{
'9': true,
'10': true,
'11': true,
'12': true,
'13': true,
'14': true,
'15': false,
'16': true,
'17': true,
'18': false,
'19': true,
}
所以基本上如果数组中存在一个键,则将其布尔值更改为false。
答案 0 :(得分:1)
将您的值用作输入数组中的键:
const x = {
'9': true,
'10': false,
'11': true,
'12': true,
'13': true,
'14': true,
'15': true,
'16': true,
'17': true,
'18': true,
'19': true,
}
['10','15','18'].forEach((val) => {
if(x.hasOwnProperty(val)) {
x[val] = false;
}
});
答案 1 :(得分:1)
您可以使用键迭代数组并检查属性是否存在,然后将值更改为false
。
var object = { 9: true, 10: false, 11: true, 12: true, 13: true, 14: true, 15: true, 16: true, 17: true, 18: true, 19: true },
keys = ['10', '15', '18'];
keys.forEach(k => k in object && (object[k] = false));
console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }