gpt4 book ai didi

javascript - 无法使用 lodash 更改对象键值

转载 作者:行者123 更新时间:2023-11-29 19:03:21 30 4
gpt4 key购买 nike

var flagsObj = {
logical1Flag: false,
operator1Flag: false,
resourceLeftFlag: false,
resource1Flag: false,
resourceRightFlag: false,
};

在上面的对象中,我想更改其中任何一个的值并将其设为真,其余的我想设为假。我已经使用了下面提到的这个函数,但是我能够更改使用映射值或 foreach 函数的值,但原始 flagsobj 没有得到更改。

function settingFlag(val, keyF) { 
const trueVal = val;
const falseVal = false;
const assignedKey = keyF;

_.mapValues(this.flagsObj, (value, key) => {
if (key === assignedKey) {
value = true;
} else {
value = false;
}
// console.log(value);
console.log(`
Flags
====
key ${key} value ${value}
`);
});

或者使用forEach来操作数据

_.forEach(this.flagsObj, (value, key) => {
if (key === assignedKey) {
value = true;
console.log(`
flags
=====
key ${key} value ${value}
`);
} else {
value = false;
}
});
console.log('::::: FLAGS :::: ', flagsObj);
}

foreach 或 map 值都在更改所需值,但原始 flagsObj 未更改。

任何可以解决问题的 lodash 函数都值得赞赏。我正在使用 angular 1.5 es6 应用程序

最佳答案

不确定 lodash,但是纯 js 中的一个衬里就可以了

var flagsObj = {
logical1Flag: false,
operator1Flag: false,
resourceLeftFlag: false,
resource1Flag: false,
resourceRightFlag: false,
};

function change(obj, key) {
return Object.keys(obj).forEach(v => obj[v] = v === key);
}

change(flagsObj, "logical1Flag");

console.log(flagsObj);

关于javascript - 无法使用 lodash 更改对象键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45089251/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com