【问题标题】:If the id's from two arrays of objects match return needed value from certain key value pair如果两个对象数组中的 id 匹配,则从某个键值对返回所需的值
【发布时间】:2020-12-20 21:59:49
【问题描述】:
const arr1 = [1,2,3,4];
const arr2  = [1,2];

const arr11 = [{_id: 1, etc: "whatever"},{_id: 2, etc: "whatever"},{_id: 3, etc: "whatever"},{_id: 4, etc: "whatever"}];
const arr22  = [{_id: 1, toPrint: 3.5},{_id: 2, toPrint: 5.7}];

arr1.filter(item1 => 
arr2.includes(item1)  ? console.log(item1) :  console.log("N/A")
)

arr1 和 arr2 之间的预期结果(这工作正常):
1
2
不适用
不适用
arr11 和 arr22 之间的预期结果(需要与 jsx 兼容的解决方案):
3.5
5.7
不适用
不适用
https://playcode.io/662468/
注意:如果arr11在arr22中没有对应的id,则返回“N\A”

【问题讨论】:

    标签: javascript arrays ecmascript-6 conditional-statements jsx


    【解决方案1】:

    你可以使用.find

    const arr11 = [
      { _id: 1, etc: "whatever" },
      { _id: 2, etc: "whatever" },
      { _id: 3, etc: "whatever" },
      { _id: 4, etc: "whatever" },
    ]
    const arr22 = [
      { _id: 1, toPrint: 3.5 },
      { _id: 2, toPrint: 5.7 },
    ]
    
    arr11.forEach((item1) => {
      const item2 = arr22.find((item2) => item2._id === item1._id)
      console.log(item2 ? item2.toPrint : "N/A")
    })

    【讨论】:

    • 哇,非常感谢!这很好用!漂亮干净的解决方案。 ty
    猜你喜欢
    • 2023-01-19
    • 2017-02-11
    • 2017-11-26
    • 1970-01-01
    • 2017-07-15
    • 2018-06-14
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多