JavaScript 중수 그룹 재정의 5가지 방법

정상적인 상황에서 데이터가 무거운 일을 하는 것은 일반적으로 백엔드 동료가 완성하는 것이지만 백엔드도 데이터를 처리하는 능력을 잘 파악해야 한다. 만약에 무거운 일을 우리에게 맡기면 우리도 꼬드겨서는 안 된다.지금 나는 무거운 것을 없애는 방법을 총결하였으니, 모두에게 약간의 도움이 되기를 바란다.
메서드1: new Set () 배열 제거
ES6는 수조와 유사하지만 구성원의 값이 유일하고 중복된 값이 없는 새로운 데이터 구조 Set을 제공합니다.Set 자체는 Set 데이터 구조를 생성하는 데 사용되는 구조 함수입니다.Set 함수는 초기화에 사용할 수 있는 배열을 받아들일 수 있습니다.Set의 데이터 특성에 따라 우리는 수조의 무게를 줄일 수 있다.

let list = [1, 1, 'a', 'a', true, true, false, false, null, '', null, '', undefined, undefined];
let list1 = Array.from(new Set(list)); // [ 1, "a", true, false, null, "", undefined ]
let list2 = [...new Set(list)]; // [ 1, "a", true, false, null, "", undefined ]
방법2:some()+순환 제거
some () 방법은 그룹의 요소가 지정된 조건을 충족하는지 검사하는 데 사용됩니다. (함수 제공)조건이 충족되는 요소가 있다면, 표현식은true를 되돌려주고, 나머지 요소는 더 이상 검사를 실행하지 않습니다.조건을 충족시키는 요소가 없으면false로 돌아갑니다.우리는 중복되지 않은 데이터를 인수하기 위해 새로운 수조를 정의할 수 있으며, 원시 수조를 반복할 때, 새로운 수조로 데이터가 이미 나타났는지 판단할 수 있다.

 function distinct(list) {
   let result = [list[0]];//  , 。
   for (let i = 1; i < list.length; i++) {
     //  , 。
     if (!(result.some(val => list[i] === val))) {
       result.push(list[i]);
     }
   }
   return result;
 }
let arr = [1, 1, 'a', 'a', true, true, false, false, null, '', null, '', undefined, undefined];
distinct(arr); // [ 1, "a", true, false, null, "", undefined ]
방법 3: 이중 for 순환 제거
이중 for 순환, 1층 순환은 수조의 모든 항목을 비교할 수 있도록 확보하고, 2층 순환은 비교된 항목의 모든 항목을 비교할 수 있도록 확보한다.

function distinct2(list) {
  for (let i = 0; i < list.length; i++) {
    for (let j = i + 1; j < list.length; j++) {
      //  , , 。
      if (list[i] === list[j]) {
        list.splice(j, 1); //  
        j--;
      }
    }
  }
  return list;
}
let arr = [1, 1, 'a', 'a', true, true, false, false, null, '', null, '', undefined, undefined];
distinct2(arr); // [ 1, "a", true, false, null, "", undefined ]
메서드4: hasOwnProperty() 메서드 제거
hasOwnProperty () 방법은 속성이 원형 체인에서 계승된 것이 아니라 대상의 자체 속성인지 검사하는 데 사용됩니다.이 속성이 자체 속성이라면true를 되돌려줍니다. 그렇지 않으면false를 되돌려줍니다.

function unique(arr) {
 var obj = {}; //  
 return arr.filter(function(item, index, arr){
   //  , false ; obj 
   return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
 })
}
let arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
unique(arr) // [ 1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, 'a', {}]
방법 5: filter () + indexOf () 방법으로 다시 하기
indexOf () 메서드는 지정된 문자열 값이 문자열에 처음 나타나는 위치를 되돌려줍니다.

function unique(arr) {
 return arr.filter(function(item, index, arr) {
  //  0 , == , 。
  return arr.indexOf(item, 0) === index;
 });
}
let list = [1, 1, 'a', 'a', true, true, false, false, null, '', null, '', undefined, undefined];
unique(list); // [ 1, "a", true, false, null, "", undefined ]
그 밖에 그룹을 다시 만들면 Filter (), includes () 등 방법으로 실현할 수 있지만 사고방식은 상기 몇 가지 방법과 유사하기 때문에 일일이 열거하지 않는다.
이상은 자바스크립트에서 그룹을 다시 만드는 5가지 방법의 상세한 내용입니다. 자바스크립트에서 그룹을 다시 만드는 방법에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

좋은 웹페이지 즐겨찾기