【问题标题】:Array.filter() on object nested array not matching value correctly对象嵌套数组上的 Array.filter() 值不正确匹配
【发布时间】:2022-10-08 13:58:48
【问题描述】:

我有两个带有嵌套对象的数组

let arrOne = [{ id:01, name:'haris' },{ id:02, name:'papi' },{ id:03, name:'john' }];
let arrTwo = [{ jobId:03, name:'haha' },{ jobId:01, name:'kaka' }];

现在我想以这样的方式过滤掉 arrOneID与 arrTwo 匹配工作编号像这样:

arrOne.filter((ele,index) => ele.id == (arrTwo)[index]?.jobId)

但它返回[ ]空数组,尽管如果我以如下方式重新排列 arrTwo:

let arrTwo = [{ jobId:01, name:'haha' },{ jobId:02, name:'kaka' }];

它将返回匹配的值。

那么这里有什么问题以及如何解决这个问题?

谢谢

【问题讨论】:

    标签: javascript arrays json filter ecmascript-6


    【解决方案1】:

    为您使用filter() 的简单解决方案

    let arrOne = [{ id:01, name:'haris' },{ id:02, name:'papi' },{ id:03, name:'john' }];
    let arrTwo = [{ jobId:03, name:'haha' },{ jobId:01, name:'kaka' }];
    
    let result = arrOne.filter(a1 => arrTwo.find(a2 => a2.jobId == a1.id));
    
    console.log(result);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多