所以我想要的數組arr1
的元素也碰巧屬於數組arr2
。我想arr1.filter(arr2.includes)
應該做的伎倆,但它給了我一個錯誤(見下文)。奇怪的是,arr1.filter(x => arr2.incudes(x))
工作正常。即使函數arr2.includes
和x => arr2.includes(x)
不是平等的,它們不應該在相同的輸入上採用相同的值嗎?我在想什麼,在這裏?Javascript:回調中的無點風格
> arr1 = ['a', 'b', 'c']
[ 'a', 'b', 'c' ]
> arr2 = ['a', 'c', 'd']
[ 'a', 'c', 'd' ]
>
> arr1.filter(x => arr2.includes(x))
[ 'a', 'c' ]
> arr1.filter(arr2.includes)
TypeError: Cannot convert undefined or null to object
at includes (<anonymous>)
at Array.filter (native)
at repl:1:6
... etc ...
值得注意的是通過查找'Array.prototype.includes'是相當緩慢的。對於像兩個數組''Set'的交集這樣的設置操作應該被使用。 – ftor