TypeError:无法使用 array.includes 将未定义或 null 转换为对象
2019-11-06
199
我不明白为什么以下代码会抛出“TypeError:无法将未定义或空值转换为对象”
const array = [1, 2];
[3, 4].every(array.includes);
2个回答
您需要将一个函数传递给
.every()
,该函数将当前元素作为参数:
[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))
);
NullDev
2019-11-06
您没有绑定它
const array = [1, 2];
const r1 = [1, 2].every(array.includes.bind(array));
const r2 = [3, 4].every(array.includes.bind(array));
--- 编辑
以上内容不正确,因为
every
回调将当前项目的索引作为第二个参数,但
array.includes
将 fromIndex 作为第二个参数。感谢评论中的 Nina Scholz。
您想要的是
[1,2].every(n => arr.includes(n));
TKoL
2019-11-06