首页 > 解决方案 > 如何比较 JavaScript 中的两个数组?但关键是一个字符串

问题描述

我是 JavaScript 的初学者,我有两个数组。

我必须比较并找出它们之间是否存在重复值。我不能这样做,因为数组的键是一个字符串。如你看到的:

[
  { "species-name": "Cana-de-açucar"},
  { "species-name": "Citros"},
  { "species-name": "Eucalipto"},
  { "species-name": "Feijão"},
  { "species-name": "Flor de Corte"},
  { "species-name": "Floresta"},
  { "species-name": "Fruticultura"},
  { "species-name": "Girassol"},
  { "species-name": "Hortaliças"},
  { "species-name": "Mandioca"}
]

另一个数组:

[
  { "species-name": "Eucalipto"},
  { "species-name": "Flor de Corte"},
  { "species-name": "Floresta"}
]

有人能帮我吗?先感谢您。

标签: javascript

解决方案


这是实现您需要的简单解决方案:

const arr1 = [
  { "species-name": "Cana-de-açucar"},
  { "species-name": "Citros"},
  { "species-name": "Eucalipto"},
  { "species-name": "Feijão"},
  { "species-name": "Flor de Corte"},
  { "species-name": "Floresta"},
  { "species-name": "Fruticultura"},
  { "species-name": "Girassol"},
  { "species-name": "Hortaliças"},
  { "species-name": "Mandioca"}
];

const arr2 = [
  { "species-name": "Eucalipto"},
  { "species-name": "Flor de Corte"},
  { "species-name": "Floresta"},
  { "species-name": "Non duplicate value" }
];

const extractValue = ({ 'species-name': speciesName }) => speciesName;

const duplicateValues = arr1
    .map(extractValue)
    .filter(x => arr2
        .map(extractValue)
        .includes(x)
    );

console.log(duplicateValues);


推荐阅读