大括号内将布尔值转换为false

时间:2018-09-25 14:41:53

标签: javascript

我在括号内有一些布尔值。将每个切换为false时,函数会是什么样?我已经尝试过conf.column = !conf.column,但这只是将整个事情设置为false,可以理解的是,不是每个布尔值都可以。

conf.column = {
  a: true,
  b: true,
  c: true,
  d: true,
  e: true
 };

7 个答案:

答案 0 :(得分:4)

使用for..in圈对象并更改键的值

let column = {
  a: true,
  b: true,
  c: true,
  d: true,
  e: true
};

for (let keys in column) {
  column[keys] = !column[keys]

}


console.log(column)

答案 1 :(得分:3)

您可以进行forEach

Object.keys(conf.column).forEach(c => conf.column[c] = false);

答案 2 :(得分:2)

只需loop个:

for (const key in conf.column)
    conf.column[key] = !conf.column[key];

答案 3 :(得分:1)

尝试

Object.keys(conf.column)
   .forEach(key => {
      conf.column[key] = !conf.column[key]
})

了解Object.keys()

答案 4 :(得分:1)

非变异函数方法-构造一个具有所需值的新对象,并将其分配给原始对象。

conf.column = Object.keys(conf.column).reduce((result, key) => {
  result[key] = false;
  return result;
}, {});

答案 5 :(得分:0)

看看您要更新键而不是对象。

const conf = {}
conf.column = {
  a: true,
  b: true
}

Object.keys(conf.column).forEach((key) => conf.column[key] = !conf.column[key])

console.log(conf.column)

答案 6 :(得分:0)

许多可能的解决方案。但是请注意,如果您的对象具有除布尔型以外的其他属性类型,请不要忘记对其进行测试。

var myObject = {
    a: true,
    b: true,
    c: true,
    d: undefined,
    e: null,
    f: "a string",
    g: 21
}

for (var attribut in myObject) {
    if (typeof(myObject[attribut]) === "boolean") {
        myObject[attribut] = !myObject[attribut];
    };
};