Disons que j'ai un tableau de mots, et je voudrais utiliser un objet pour obtenir le compte de celui-ci. J'ai essayé ceci:le || et l'opérateur NaN. Comment fonctionnent-ils vraiment?
const results = {};
const words = ["word", "hello", "code", "five", "hello", "word", "new", "code"];
words.forEach(word => {
results[word] = results[word] + 1 || 1;
});
results
dans ce cas retourne:
{ word: 2, hello: 2, code: 2, five: 1, new: 1 }
NaN === false
est false
et results[word] + 1 => NaN
. Je ne comprends pas très bien pourquoi les résultats ne seraient pas:
{ word: NaN, hello: NaN, code: NaN, five: NaN, new: NaN }
Quelqu'un veut-il expliquer? :)
Copie possible de [Est-ce que NaN est falsifié? Pourquoi NaN === false renvoie false] (http://stackoverflow.com/questions/22600248/is-nan-falsy-why-nan-false-returns-false) –
@JaromandaX c'est, car 'undefined + 1' est 'NaN'. –