我误解了如何删除具有与另一个数组匹配的元素的数组中的元素。
示例:
const items = ['first', 'second', 'third']
const secondItems = ['first', 'second']
预期:
console.log(items) | 'third'
console.log(secondItems) | 'first', 'second
希望有一些示例可以实现这一目标。 多次尝试使用两个forEach或filter和checking语句,但是我总是得到错误的结果。
答案 0 :(得分:2)
只需使用Array.prototype.filter()
方法:
const items = ['first', 'second', 'third']
const secondItems = ['first', 'second']
console.log(items.filter(i => !secondItems.includes(i)))
console.log(secondItems.filter(i => items.includes(i)))
不过,我对您的这种期望并不完全理解:
console.log(secondItems) | 'first', 'second
您能在评论中详细说明吗?
答案 1 :(得分:1)
这可以通过以下方法解决:
const items = ['first', 'second', 'third'];
const secondItems = ['first', 'second'];
const filteredBySecondItems = items.filter(function(item) {
// For item in items array, check if there is a match
// in secondItems. If there is no match, allow it
// to be included in the returned list
return secondItems.indexOf(item) === -1
})
console.log(filteredBySecondItems) // [ 'third' ]
答案 2 :(得分:1)
items.filter(x => !secondItems.includes(x))
只需在浏览器控制台中尝试,它就可以工作。