如何从另一个JS数组创建新的JS数组

我想从一个对象创建新的 JS 数组。我解释了我的场景如下。

数组 1:

const arr1 = [
  {CODE: "PPM", YARN: 1987, EXP: "IUYT", CARD: "MMN"},
  {CODE: "SSW", YARN: 4500, EXP: "NBVC", CARD: "MMN"},
  {CODE: "YTR", YARN: 0740, EXP: "NBVC", CARD: "MMN"},
  {CODE: "NNH", YARN: 1540, EXP: "MHYT", CARD: "MMN"}
]

数组 2:

const arr2 = [
  {PRICE: 6354, CODE: "SSW", WARN: "NBVC"},
  {PRICE: 8637, CODE: "NNH", WARN: "MHYT"},
]

预期输出:

output = [
  {CODE: "SSW", YARN: 4500, EXP: "NBVC", CARD: "MMN"},
  {CODE: "NNH", YARN: 1540, EXP: "MHYT", CARD: "MMN"}
]

解释:

我想比较arr1arr2。如果arr1.code包含arr2.code它应该在新数组中。这意味着arr1.code[2] = 'SSW'SSW包含在arr2.code[0]. 然后arr1.code[2]应该在新数组中。对arr1.code[3] = 'NNH'. NNH包含在arr2.code[1].

试过的代码:

console.log(arr1.filter(({ CODE: code1 }) => arr2.some(({ CODE: code2 }) => code2 === code1));

当我尝试上面的代码时,我收到一个错误

渲染错误:“类型错误:无法读取未定义的属性‘价格’”

帮我解决这个问题。

回答

const arr1 = [
  {CODE: "PPM", YARN: 1987, EXP: "IUYT", CARD: "MMN"},
  {CODE: "SSW", YARN: 4500, EXP: "NBVC", CARD: "MMN"},
  {CODE: "YTR", YARN: 0740, EXP: "NBVC", CARD: "MMN"},
  {CODE: "NNH", YARN: 1540, EXP: "MHYT", CARD: "MMN"}
]

const arr2 = [
  {PRICE: 6354, CODE: "SSW", WARN: "NBVC"},
  {PRICE: 8637, CODE: "NNH", WARN: "MHYT"},
]

console.log(arr1.filter(({
    CODE: code1
}) => arr2.some(({
    CODE: code2
}) => code2 === code1))**)**;

我猜您可能在console.log语句中遗漏了一个括号)。但是,您还没有在代码中使用price关键字。可能是别的什么问题。能分享一下完整的功能吗?


以上是如何从另一个JS数组创建新的JS数组的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>