arr.indexOf(item)===index)" 문입니다."/> arr.indexOf(item)===index)" 문입니다.">

 >  기사  >  웹 프론트엔드  >  자바스크립트 배열에서 중복 항목을 제거하는 방법은 무엇입니까?

자바스크립트 배열에서 중복 항목을 제거하는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-06-22 16:42:301737검색

중복 제거 방법: 1. "Array.from(new Set(arr))" 문을 사용합니다. 2. "[...new Set(arr)]" 문을 사용합니다. 3. "arr.filter( (item,index )=>arr.indexOf(item)===index)" 문입니다.

자바스크립트 배열에서 중복 항목을 제거하는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript 배열 중복을 제거하는 여러 가지 방법

1. Array.from(new Set(arr))

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

Array.from(new Set(arr)); // [1, 2, 3]

Set의 요소는 원래 값이든 개체 참조이든 고유하므로 , 따라서 배열을 Set 개체로 변환하여 중복 제거를 달성할 수 있습니다

Array.from 메서드는 Set 개체를 배열로 변환할 수 있습니다Array.from方法可以将 Set 对象转换成数组

2、[…new Set(arr)]

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

这里是通过 ES6 的展开语法将 Set 对象转换成数组;

3、arr.filter((item, index) => arr.indexOf(item) === index)

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

arr.filter((item, index) => arr.indexOf(item) === index); // [1, 2, 3]

indexOf方法返回指定元素在数组中的第一个索引(index), 如果没有则返回 -1

所以这里的 arr 数组中的每个元素通过 indexOf() 方法返回的索引值分别是 0 1 2 1 2

arr.forEach(item => console.log(arr.indexOf(item))); // 0 1 2 1 2

可以通过 indexOf 来实现去重,比如 arr 中的第四个元素 2 通过 indexOf 返回的是索引是 1, 但是它当前的 index 下标是 3,不相等,说明当前的这个 2

2, [...new Set(arr) ] rrreee

다음은 Set 객체를 배열로 변환하는 ES6의 확장 구문입니다. 🎜🎜🎜🎜3, arr.filter((item, index) => arr.indexOf (item) == = index)🎜🎜🎜rrreee🎜indexOf 메소드는 배열에서 지정된 요소의 첫 번째 인덱스(index)를 반환하고, 그렇지 않은 경우 -1🎜🎜을 반환하므로 여기서 arr은 배열의 각 요소 indexOf() 메서드에서 반환되는 인덱스 값은 0 1 2 1 2🎜rrreee🎜 indexOf를 사용하여 다음과 같은 중복 제거를 달성할 수 있습니다. arr2의 네 번째 요소는 indexOf를 통해 1의 인덱스를 반환하지만 현재 인덱스 아래 첨자는 3입니다. 이는 동일하지 않으며 현재 2 요소가 있습니다. 이전에 등장했으므로 필터링해야 합니다🎜🎜[관련 권장 사항: 🎜javascript 학습 튜토리얼🎜🎜]🎜🎜

위 내용은 자바스크립트 배열에서 중복 항목을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.