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