javascript - js中根据另一个对象过滤对象

标签 javascript

我正在尝试筛选出 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/

相关文章:

php - 来自 ajax 的 google-charts javascript arrayToDataTable

javascript - 检测点击内部/外部 div

Javascript 代码在 Node 中不起作用?

javascript - Pinterest Product Hunt 样式模式和路由的策略

javascript - 上传图片时控制图片的宽度和高度

javascript - 弹出窗口时焦点关闭按钮

javascript - 不带括号调用JS函数

javascript - 当输入是从另一个标准填充时,对输入文本更改执行操作

javascript - AngularJS - ng-click 不会触发我的 Controller 功能

javascript - 防止文本在 contenteditable 元素中突出显示时被删除