JavaScript 중수 그룹 재정의 5가지 방법
3598 단어 JavaScript수조무거운 짐을 지다
메서드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가지 방법의 상세한 내용입니다. 자바스크립트에서 그룹을 다시 만드는 방법에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.