J'ai un objet
currentValues= {hey:1212, git:1212, nmo:12121}
et j'utilise pour comme ceci:
for (const key in currentValues) {
if (Object.prototype.hasOwnProperty.call(currentValues, key)) {
yield put(setCurrentValue(key, currentValues[key]));
}
}
ESLint me montre une erreur qui dit:
Les boucles ESLint: for..in parcourent toute la chaîne de prototypes, ce qui n'est pratiquement jamais ce que vous voulez. Utilisez Object. {Clés, valeurs, entrées} et parcourez le tableau résultant. (syntaxe sans restriction
Comment dois-je modifier mon code?
Ça dit,
Utilisez Object. {Clés, valeurs, entrées} et parcourez le tableau résultant.
Vous pouvez donc faire quelque chose comme ceci pour obtenir les clés d'objet sous forme de tableau, puis parcourir les clés pour effectuer les modifications nécessaires.
currentValues= {hey:1212, git:1212, nmo:12121}
Object.keys(currentValues).forEach(function(key) {
yield put(setCurrentValue(key, currentValues[key]));
})
J'ai utilisé ce qui suit:
const keys = Object.keys(currentValues);
const values = Object.values(currentValues);
for (let i = 0; i < keys.length; i += 1) {
yield put(setCurrentValue(keys[i], values[i]));
}
Ceci est correct et sans erreurs ESLint.
Vous pouvez obtenir le tableau de toutes vos valeurs à l'intérieur de votre objet juste en faisant
var myValuesInArray = Object.values(currentValues);
Je sais que c'est similaire à ce qui précède, mais voici un exemple complet:
const data = res.data;
const keys = Object.keys(data);
const values = Object.values(data);
for (let i = 0; i <= keys.length; i += 1) {
if (Object.prototype.hasOwnProperty.call(values, i)) {
this.rows.Push({
name: values[i].name,
email: values[i].email,
address: values[i].address,
phone: values[i].phone,
role: values[i].role,
});
}
}
essayez plutôt ceci:
Object.keys(currentValues).map(key => (yield put(setCurrentValue(key, currentValues[key]))));