var flagsObj = {
logical1Flag: false,
operator1Flag: false,
resourceLeftFlag: false,
resource1Flag: false,
resourceRightFlag: false,
};
dans l'objet ci-dessus, je voulais changer la valeur de l'un d'entre eux et le rendre vrai et le reste je voulais le rendre faux. j'ai utilisé cette fonction qui est mentionnée ci-dessous, cependant je suis capable de changer la valeur de l'utilisation des valeurs de la carte ou de la fonction foreach mais le flagsobj original ne reçoit pas de changements.
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}
`);
});
ou en utilisant le forEach pour manipuler les données
_.forEach(this.flagsObj, (value, key) => {
if (key === assignedKey) {
value = true;
console.log(`
flags
=====
key ${key} value ${value}
`);
} else {
value = false;
}
});
console.log('::::: FLAGS :::: ', flagsObj);
}
Les deux valeurs foreach ou map changent les valeurs requises mais le flagsObj original n'est pas modifié.
Toute fonction lodash qui résoudrait le problème serait appréciée. J'utilise l'application angular 1.5 es6.