자바 스크립트의 배열에 중복되지 않는 객체를 추가하는 방법은 무엇입니까?

que1326

중복되지 않은 개체를 새 배열에 추가하고 싶습니다.

var array = [
  {
    id: 1,
    label: 'one'
  },
  {
    id: 1,
    label: 'one'
  },
  {
    id: 2,
    label: 'two'
  }
];

var uniqueProducts = array.filter(function(elem, i, array) {
    return array.indexOf(elem) === i;
});

console.log('uniqueProducts', uniqueProducts);
// output: [object, object, object] 

라이브 코드

사용자 3297291

일반적으로 개체를 사용하여 고유 키를 추적합니다. 그런 다음 개체를 모든 속성 값의 배열로 변환합니다.

id식별자로 사용할 수 있는 고유 한 유사 속성 을 포함하는 것이 가장 좋습니다 . 계정이없는 경우 직접 JSON.stringify또는 사용자 지정 방법을 사용하여 생성해야합니다 . 객체를 문자열 화하면 단점이 있습니다. 키의 순서가 일관적일 필요는 없습니다.

당신은 할 수 만들 objectsAreEqual깊은 비교를 지원하는 방법을,하지만이 대단히 함수를 느리게.

두 단계로 :

var array=[{id:1,label:"one"},{id:1,label:"one"},{id:2,label:"two"}];

// Create a string representation of your object
function getHash(obj) {
   return Object.keys(obj)
     .sort() // Keys don't have to be sorted, do it manually here
     .map(function(k) {
       return k + "_" + obj[k]; // Prefix key name so {a: 1} != {b: 1}
     })
     .join("_"); // separate key-value-pairs by a _
}


function getHashBetterSolution(obj) {
  return obj.id; // Include unique ID in object and use that
};

// When using `getHashBetterSolution`:
// { '1': { id: '1', label: 'one' }, '2': /*etc.*/ }
var uniquesObj = array.reduce(function(res, cur) {
  res[getHash(cur)] = cur;
  return res;
}, {});

// Convert back to array by looping over all keys                             
var uniquesArr =  Object.keys(uniquesObj).map(function(k) {
  return uniquesObj[k];
});

console.log(uniquesArr);

// To show the hashes
console.log(uniquesObj);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배열이있는 객체 배열의 데이터를 다른 객체 배열에 추가하는 방법은 무엇입니까? 자바 스크립트

분류에서Dev

자바 스크립트의 내장 객체에 객체를 추가하는 방법은 무엇입니까?

분류에서Dev

Underscore 또는 Lodash를 사용하지 않고 자바 스크립트에서 두 개의 객체 배열을 결합하는 방법은 무엇입니까?

분류에서Dev

typedarray를 자바 스크립트의 배열에 복사하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Firefox에서 반복되는 자바 스크립트를 중지하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 JSON 객체 배열에 값을 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 반복되지 않는 배열에서 임의의 문자열을 가져 오는 방법은 무엇입니까?

분류에서Dev

중첩 배열의 값을 기반으로 객체를 반환하는 방법은 무엇입니까? (자바 스크립트)

분류에서Dev

자바 스크립트의 변수 이름을 사용하여 배열 내부에 객체 속성을 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 다른 배열 안에있는 객체 배열 내부의 객체에 액세스하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 객체 값에서 키를 반환하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 객체에서 배열 배열을 만드는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 배열을 객체로 변환하는 동안 추가 속성을 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 객체 배열에서 중복 cropName 영역을 추가하는 방법

분류에서Dev

배열을 자바 스크립트의 객체로 변환하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 객체 내의 객체에 액세스하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 : 배열 속성에 대한 게시 요청을 위해 객체 배열을 반복하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 중첩 된 객체에서 모든 자식의 단일 속성을 얻는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 배열 내부에있는 배열 내부를 반복하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 배열에 항목을 pusing하는 동안 사용자 지정 인덱스를 삽입하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트로 첫 번째 개체를 변경하지 않고 기존 개체에 값을 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 두 가지 크기 배열의 요소를 결합하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 객체 배열을 선언하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 문자열 사이에 무언가를 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 본문 요소에 클래스를 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 링크에서 삽입 할 때 이미지에 이벤트를 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 개체의 총 배열을 그룹화하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 두 json 배열에서 일치하지 않는 객체를 얻는 방법

분류에서Dev

자바 스크립트의 사용자 지정 생성자에 사용자 지정 메서드를 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    배열이있는 객체 배열의 데이터를 다른 객체 배열에 추가하는 방법은 무엇입니까? 자바 스크립트

  2. 2

    자바 스크립트의 내장 객체에 객체를 추가하는 방법은 무엇입니까?

  3. 3

    Underscore 또는 Lodash를 사용하지 않고 자바 스크립트에서 두 개의 객체 배열을 결합하는 방법은 무엇입니까?

  4. 4

    typedarray를 자바 스크립트의 배열에 복사하는 가장 빠른 방법은 무엇입니까?

  5. 5

    Firefox에서 반복되는 자바 스크립트를 중지하는 방법은 무엇입니까?

  6. 6

    자바 스크립트에서 JSON 객체 배열에 값을 추가하는 방법은 무엇입니까?

  7. 7

    자바 스크립트에서 반복되지 않는 배열에서 임의의 문자열을 가져 오는 방법은 무엇입니까?

  8. 8

    중첩 배열의 값을 기반으로 객체를 반환하는 방법은 무엇입니까? (자바 스크립트)

  9. 9

    자바 스크립트의 변수 이름을 사용하여 배열 내부에 객체 속성을 추가하는 방법은 무엇입니까?

  10. 10

    자바 스크립트의 다른 배열 안에있는 객체 배열 내부의 객체에 액세스하는 방법은 무엇입니까?

  11. 11

    자바 스크립트의 객체 값에서 키를 반환하는 방법은 무엇입니까?

  12. 12

    자바 스크립트 객체에서 배열 배열을 만드는 방법은 무엇입니까?

  13. 13

    자바 스크립트에서 배열을 객체로 변환하는 동안 추가 속성을 추가하는 방법은 무엇입니까?

  14. 14

    자바 스크립트의 객체 배열에서 중복 cropName 영역을 추가하는 방법

  15. 15

    배열을 자바 스크립트의 객체로 변환하는 방법은 무엇입니까?

  16. 16

    자바 스크립트에서 객체 내의 객체에 액세스하는 방법은 무엇입니까?

  17. 17

    자바 스크립트 : 배열 속성에 대한 게시 요청을 위해 객체 배열을 반복하는 방법은 무엇입니까?

  18. 18

    자바 스크립트를 사용하여 중첩 된 객체에서 모든 자식의 단일 속성을 얻는 방법은 무엇입니까?

  19. 19

    자바 스크립트의 배열 내부에있는 배열 내부를 반복하는 방법은 무엇입니까?

  20. 20

    자바 스크립트의 배열에 항목을 pusing하는 동안 사용자 지정 인덱스를 삽입하는 방법은 무엇입니까?

  21. 21

    자바 스크립트로 첫 번째 개체를 변경하지 않고 기존 개체에 값을 추가하는 방법은 무엇입니까?

  22. 22

    자바 스크립트에서 두 가지 크기 배열의 요소를 결합하는 방법은 무엇입니까?

  23. 23

    자바 스크립트에서 객체 배열을 선언하는 방법은 무엇입니까?

  24. 24

    자바 스크립트 문자열 사이에 무언가를 추가하는 방법은 무엇입니까?

  25. 25

    자바 스크립트의 본문 요소에 클래스를 추가하는 방법은 무엇입니까?

  26. 26

    자바 스크립트의 링크에서 삽입 할 때 이미지에 이벤트를 추가하는 방법은 무엇입니까?

  27. 27

    자바 스크립트에서 개체의 총 배열을 그룹화하는 방법은 무엇입니까?

  28. 28

    자바 스크립트의 두 json 배열에서 일치하지 않는 객체를 얻는 방법

  29. 29

    자바 스크립트의 사용자 지정 생성자에 사용자 지정 메서드를 추가하는 방법은 무엇입니까?

뜨겁다태그

보관