【发布时间】:2016-07-27 15:56:35
【问题描述】:
我想创建一个函数来检查一个数组中的所有元素是否存在于另一个数组中。我试过这样做:
function includesAll (needles, haystack) {
return needles.every((needle) => {
return haystack.includes(needle)
})
}
但是,当我为 needles 的空数组测试此函数时,像这样:includesAll([], [1]),它返回 true,而我期待 false(因为 [1].includes([]) 返回 false )。为什么会这样?你能写一个正确的函数吗(一个反映include行为的函数,但是是一个数组而不是一个元素)?
【问题讨论】:
-
因为 [1].includes([]) 返回 false:但这不一样,也没有发生。 includes 没有传递给数组,而是该数组中的元素,因为没有元素,所以永远不会调用 includes。该函数应返回 true,因为没有不包含的元素。
标签: javascript arrays