>  기사  >  웹 프론트엔드  >  js 배열에서 중복을 제거하는 방법은 무엇입니까? js 배열 중복 제거 방법 요약(예)

js 배열에서 중복을 제거하는 방법은 무엇입니까? js 배열 중복 제거 방법 요약(예)

不言
不言원래의
2018-08-17 17:04:112253검색

이 기사에서 제공하는 내용은 js 배열에서 중복 항목을 제거하는 방법이 무엇입니까? js 배열 중복 제거 방법 요약(예제)에는 특정 참고 가치가 있으므로 도움이 필요한 친구가 참고할 수 있기를 바랍니다.

가장 기본적인 작성 방법은 indexOf()를 사용하는 것입니다

var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
//比较常规的语法使用indexOf来判断是否已经存在
getFileArray(arr)
function getFileArray(arr){
  var array = [];
  arr.forEach(e => {
    if(array.indexOf(e) !== -1){
      return;
    }else {
      array.push(e)
    }
  });
  return array;
}

성능이 좋을 것 같은 제거 방법

// 通过遍历每次被值给到数组角标 适用于数组里面数量不太的数组
var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
getFilterArray(arr)
function getFilterArray (array) {
    const res = [];
    const json = {};
    for (let i = 0; i < array.length; i++){
        const _self = array[i];    //获取迭代的数值
        if(!json[_self]){          //假如json在_self这个下标没有数值,就说明这个数据没有
            res.push(_self);       //没有的话就push
            json[_self] = 1;       //同时给这和匹配不到的下标一个值,保证下次进不来
        }                          // 这样写的话 不需要循环遍历 对性能要求更小
    }
    return res;
}

다른 작성 방법

var array = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
arrtoObject(arr)
function arrtoObject(arrs) {
  //var obj={};
  var obj = new Object();
  for (var i = 0; i < arrs.length; i++) {
    obj[arrs[i]] = true;
  }
  objectToarr(obj)
}

function objectToarr(obj){
  console.log(obj);
  var arr = [];
  for (const i in obj) {
    arr.push(i)
  }
  console.log(arr);
  return arr
}

ES5 필터 필터 기능

var array = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
function unique(array) {
  var res = array.filter(function (item, index, array) {
    return array.indexOf(item) === index;   //因为array.indexOf返回数组的下标 如果这里的下标和index不一样说明已经存在了,就直接退出了
  })
  return res;
}

console.log(unique(array));

ES6 Set 이것은 단순히 필터 정렬의 탄생입니다. 필터링용

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]

function FilterArray(arr) {
  set = new Set(arr)
  let arrays = Array.from(set)
  arrays.sort((a, b) => {
    return a - b
  })
  return arrays
}
FilterArray(arr)

정렬만 필요한 경우

한 줄의 코드로 구현할 수 있습니다

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
var FilterArray = (arr) => [...new Set(arr)]   //
FilterArray(arr)

관련 권장 사항:

JS 배열에서 중복 데이터 제거

JS는 indexOf() 메서드를 사용합니다. 배열 중복 제거 구현

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

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