我在括号内有一些布尔值。将每个切换为false时,函数会是什么样?我已经尝试过conf.column = !conf.column
,但这只是将整个事情设置为false,可以理解的是,不是每个布尔值都可以。
conf.column = {
a: true,
b: true,
c: true,
d: true,
e: true
};
答案 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]
})
答案 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];
};
};