切换对象中的属性-Javascript

时间:2019-12-02 14:34:41

标签: javascript javascript-objects

我有一个对象,需要根据键切换属性。如果密钥已经为真,则发送相同的密钥将使其为假。如果发送了新密钥,则应将对象中所有先前的密钥设置为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}

请咨询。

1 个答案:

答案 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)