【问题标题】:i have Two array i want that unique value of array [duplicate]我有两个数组我想要数组的唯一值[重复]
【发布时间】:2021-11-20 06:50:29
【问题描述】:
let array1 = ["apple", "banana", "mango"];
let array2 = ["apple", "banana", "mango", "red", "green"];

I want output is = array3 = [ "red", "green"];

我想连接array1和array2并删除重复的代码,输出是array3。

有两种常用方法(分别在 ES5 和 ES6 中)在 JavaScript 原始值数组中获取唯一值。基本上,在 ES5 中,您首先定义一个不同的回调来检查一个值是否首先出现在原始数组中,然后过滤原始数组以便只保留第一次出现的元素。

【问题讨论】:

  • 你为什么引用其他来源的一段话?

标签: javascript ecmascript-6


【解决方案1】:

您可以使用Map 轻松过滤出常见元素:

let array1 = ["apple", "banana", "mango"];
let array2 = ["apple", "banana", "mango", "red", "green"];

const map = [...array1, ...array2].reduce(
  (map, curr) => map.set(curr, (map.get(curr) ?? 0) + 1),
  new Map()
);

const result = [];
for (let [k, v] of map) {
  if (v === 1) result.push(k);
}
console.log(result);

【讨论】:

  • I want to concat array1 and array2 and remove the duplicate code and output is array3.这会捕获array1中的唯一项目吗?
  • 否 它不会捕获,因为唯一值存储在 Set 而不是 array1array2
  • 我的意思是如果array1 是["apple", "banana", "mango", "orange"] 并且array2 是一样的。预期的结果是什么?
  • @Mark Answer 已编辑...
猜你喜欢
  • 2019-06-08
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多