web-dev-qa-db-fra.com

ESLint ne permet pas de

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?

18
user7334203

Ç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]));
})
30
rishipuri

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.

6
user7334203

Vous pouvez obtenir le tableau de toutes vos valeurs à l'intérieur de votre objet juste en faisant

var myValuesInArray = Object.values(currentValues);
2
quirimmo

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,
  });
 }
}
0
Andres Felipe

essayez plutôt ceci:

Object.keys(currentValues).map(key => (yield put(setCurrentValue(key, currentValues[key]))));
0
Daher