Je ne comprends pas pourquoi le code suivant génère une "TypeError: impossible de convertir undefined ou null en objet"
const array = [1, 2];
[3, 4].every(array.includes);
-2
Simon D
6 nov. 2019 à 18:59
2 réponses
Vous devez passer une fonction à .every()
qui prend l'élément courant comme paramètre:
[3, 4].every(element => array.includes(element));
const array = [1, 2];
console.log(
[3, 4].every(element => array.includes(element))
);
console.log(
[1, 2].every(element => array.includes(element))
);
0
NullDev
6 nov. 2019 à 16:03
Tu ne l'as pas lié
const array = [1, 2];
const r1 = [1, 2].every(array.includes.bind(array));
const r2 = [3, 4].every(array.includes.bind(array));
--- Éditer
Ce qui précède est incorrect, car le rappel every
prend l'index de l'élément en cours comme deuxième paramètre, mais array.includes
prend le fromIndex comme deuxième paramètre. Merci à Nina Scholz dans les commentaires.
Ce que tu veux c'est
[1,2].every(n => arr.includes(n));
0
TKoL
6 nov. 2019 à 16:41
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.