JavaScrip数组去重操作实例小结

2023-12-11java编程
5

本文将详细讲解“JavaScript 数组去重操作实例小结”,包括去重的常用方法以及实例说明。

一、常用去重方法

1. Set(ES6新增)

ES6 中引入了 Set 数据结构,它类似于数组,但是数组中的元素是不能重复的,可以很方便地实现数组去重。

const arr = [1, 2, 2, 3, 3, 4];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4]

2. filter

通过 Array.prototype.filter() 方法可以实现数组去重操作,将数组中的每个元素与其它元素比较,留下不重复的。

const arr = [1, 2, 2, 3, 3, 4];

const uniqueArr = arr.filter((item, index) => {
  return arr.indexOf(item) === index;
});

console.log(uniqueArr); // [1, 2, 3, 4]

3. reduce

使用 reduce 方法,遍历数组,将元素添加到结果数组中,如果该元素已存在于结果数组中,则不再添加。

const arr = [1, 2, 2, 3, 3, 4];

const uniqueArr = arr.reduce((tempArr, cur) => {
  if (!tempArr.includes(cur)) {
    tempArr.push(cur);
  }
  return tempArr;
}, []);

console.log(uniqueArr); // [1, 2, 3, 4]

二、去重实例说明

1. 数组对象去重

考虑以下数组对象:

const userArr = [
  { name: 'Alice', age: 18 },
  { name: 'Bob', age: 20 },
  { name: 'Alice', age: 18 }
];

我们可以使用 Set 去重:

const uniqueArr = [...new Set(userArr.map(user => JSON.stringify(user)))].map(str => JSON.parse(str));
console.log(uniqueArr); // [{name: "Alice", age: 18}, {name: "Bob", age: 20}]

其中,数组对象首先需要转换成 JSON 字符串,然后再去重操作完成后再将其转换回数组对象。

2. 多维数组去重

对于多维数组,也需要用到上文提到的方法进行去重。如下所示:

const multiArr = [[1, 2, 3], [2, 3, 4], [1, 2]];
const uniqueArr = multiArr.reduce((tempArr, arr) => {
  const str = arr.join();
  if (!tempArr.includes(str)) {
    tempArr.push(str);
  }
  return tempArr;
}, []).map(str => str.split(',').map(Number));

console.log(uniqueArr); // [[1, 2, 3], [2, 3, 4], [1, 2]]

其中,多维数组将每个子数组都转换成以逗号分隔的字符串,然后进行去重操作,最后在还原成多维数组。

以上就是本文的全部内容,希望对你有所帮助。

The End

相关推荐

一文带你掌握Java8中Lambda表达式 函数式接口及方法构造器数组的引用
Lambda表达式是Java 8中引入的新特性之一,它是一个匿名函数,可以捕获参数并表现为一个代码块,而不像方法一样需要一个固定的名称。它主要用于传递行为或代码块以及事件处理等操作。...
2023-12-11 java编程
30

基于Java 谈回调函数
下面为您详细讲解基于Java的回调函数。...
2023-12-11 java编程
21

java equals函数用法详解
在Java中,equals()是用来比较两个对象是否相等的函数。equals()方法是Object类中的方法,因此所有Java类都包含equals()方法。在默认情况下,equals()方法比较对象的引用地址是否相同,即两个对象是否是同一个实例。但是,我们可以覆盖equals()方法,来定义自...
2023-12-11 java编程
63

JavaWeb学习笔记分享(必看篇)
JavaWeb是Java在Web领域的应用,是目前非常热门的技术之一。但是JavaWeb涉及到的技术非常广泛,初学者很容易迷失方向。本文总结了JavaWeb的基础知识,为初学者提供了一份学习笔记分享,希望能够帮助大家快速入门。...
2023-12-11 java编程
8

Java中replace、replaceAll和replaceFirst函数的用法小结
在Java编程中,字符串操作是很常见的,而替换字符串是其中常用的操作之一。Java提供了三种函数用于替换字符串:replace、replaceAll和replaceFirst。这篇文章将为您详细介绍它们的用法。...
2023-12-11 java编程
121

基于Java中进制的转换函数详解
进制是数学中一种表示数值大小的方法,常见的进制有10进制、2进制、16进制等。...
2023-12-11 java编程
45