我试图了解 every
方法在 JavaScript 中的真正作用。
我有以下块代码:
const data = null;
const arr = [
data,
data.name
];
const outcome = arr.every(Boolean);
console.log(outcome); // TypeError: Cannot read property 'name' of undefined
我认为它会返回 false
,因为数组中的第一项是 falsy
值,但是它抛出了 TypeError: Cannot read property 'name' of undefined
的错误。
Array.prototype.every() 的文档说:
<块引用>every
方法对数组中存在的每个元素执行一次提供的回调函数,直到找到回调返回假值的那个。如果找到这样的元素,every
方法会立即返回 false。
所以我不确定我是否误解了它。
任何帮助将不胜感激!
答案 0 :(得分:2)
错误发生在您定义 arr
时,而不是在 every
中。 data
是 null
,因此 data.name
无效,这就是您收到 TypeError: Cannot read property 'name' of undefined
错误消息的原因。