我正在尝试筛选出 arr1 中与 arr2 中的项目键匹配的项目 我的代码看起来是正确的,但它没有为我返回正确的值。
它应该返回:
arr1 = [{x: 'LEFT_SPRING'}, {x: 'LEFT_OPEN'}]
但是它这样做:
const arr2= [{x: 'LEFT_INDEX'}, {x: 'LEFT_MIDDLE'}]
const arr1 = [{x: 'LEFT_SPRING'}, {x: 'LEFT_INDEX'}, {x: 'LEFT_OPEN'},{x: 'LEFT_MIDDLE'}].filter((item) => arr2.some((s) => item.x!== s.x))
console.log('arr1 = ', arr1)
最佳答案
您的过滤
条件将始终返回true
,因为arr1
中始终存在某些
记录不等于arr2
中的当前记录,filter
条件应为 .filter((item) => !arr2.some((s) => item.x == = s.x))
const arr2 = [{
x: 'LEFT_INDEX'
}, {
x: 'LEFT_MIDDLE'
}]
const arr1 = [{
x: 'LEFT_SPRING'
}, {
x: 'LEFT_INDEX'
}, {
x: 'LEFT_OPEN'
}, {
x: 'LEFT_MIDDLE'
}].filter((item) => !arr2.some((s) => item.x === s.x))
console.log('arr1 = ', arr1)
关于javascript - js中根据另一个对象过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75513033/