我有一个对象,需要根据键切换属性。如果密钥已经为真,则发送相同的密钥将使其为假。如果发送了新密钥,则应将对象中所有先前的密钥设置为false,并将新密钥设置为true。
这是我的实现。
// New key with value true
const obj1 = {};
const obj2 = {
'A1': true
}
const obj3 = {
'A1': true
}
const updateObj = (obj, code) => {
if (code) obj[code] = !obj[code]
}
updateObj(obj1, 'A1');
updateObj(obj2, 'A1');
updateObj(obj3, 'A2')
console.log('obj1', obj1)
console.log('obj2', obj2)
console.log('obj3', obj3)
在第三个示例中,它应返回{'A1': false, 'A2': true}
。
请咨询。
答案 0 :(得分:0)
正如@Amir Popovich所说,这是最好的选择
// New key with value true
const obj1 = {};
const obj2 = {
'A1': true
}
const obj3 = {
'A1': true
}
const updateObj = (obj, code) => {
Object.keys(obj).forEach(k => obj[k] = !obj[k]);
if(code) obj[code] = true
}
updateObj(obj1, 'A1');
updateObj(obj2, 'A1');
updateObj(obj3, 'A2')
console.log('obj1', obj1)
console.log('obj2', obj2)
console.log('obj3', obj3)