다른 객체 참조 배열로 객체 정렬

아들 EtLumiere

이 데이터를 정렬하는 데 도움이 필요합니다. 제품 배열이 있고 설정 구성별로 정렬하고 표시해야합니다. 출력은 설정 배열 (인덱스)과 동일한 순서를 가져야하며 display가 true 인 경우에는 미리 감사드립니다. 이것이 내가 시도한 것입니다.

var products = [
    {id: 0, name: 'Chocolate', category: 'Sweet'},
    {id: 1, name: 'Almendras', category: 'Fruit'},
    {id: 2, name: 'Nueces', category: 'Fruit'},
    {id: 3, name: 'Mermelada', category: 'Jam'},
    {id: 4, name: 'Alfajor', category: 'Sweet'},
    {id: 5, name: 'Queso', category: 'UwU'},
    {id: 6, name: 'Arandanos', category: 'Fruit'},
    {id: 7, name: 'Maracuya', category: 'Fruit'}
];

let settings = [
    {
        name: 'Fruit',
        display: true
    },
    {
        name: 'Jam',
        display: false
    },
    {
        name: 'Sweet',
        display: true
    },
    {
        name: 'UwU',
        display: true
    }
]


let group = products.reduce((r, a) => {
      r[a.category] = [...r[a.category] || [], a];
      return r;
    }, {});

let arrangedProducts = Object.keys(group); 

console.log(group);
console.log(arrangedProducts);

이것은 내 예상 출력입니다.

/*
expected result = [
    [
        {id: 1, name: 'Almendras', category: 'Fruit'}, 
        {id: 2, name: 'Nueces', category: 'Fruit'}, 
        {id: 6, name: 'Arandanos', category: 'Fruit'},
        {id: 7, name: 'Maracuya', category: 'Fruit'}
    ],
    [
        {id: 0, name: 'Chocolate', category: 'Sweet'},
        {id: 4, name: 'Alfajor', category: 'Sweet'}
    ],
    [
        {id: 5, name: 'Queso', category: 'UwU'}
    ]
]
*/

새긴 ​​금

당신은 할 수 있습니다 필터링 당신 settings에 기초 목록을 display재산 후 사용 Array.map에서 객체의 목록을 반환하는 products일치하는 범주 :

const products = [
    {id: 0, name: 'Chocolate', category: 'Sweet'},
    {id: 1, name: 'Almendras', category: 'Fruit'},
    {id: 2, name: 'Nueces', category: 'Fruit'},
    {id: 3, name: 'Mermelada', category: 'Jam'},
    {id: 4, name: 'Alfajor', category: 'Sweet'},
    {id: 5, name: 'Queso', category: 'UwU'},
    {id: 6, name: 'Arandanos', category: 'Fruit'},
    {id: 7, name: 'Maracuya', category: 'Fruit'}
];

const settings = [
    { name: 'Fruit', display: true },
    { name: 'Jam', display: false },
    { name: 'Sweet', display: true },
    { name: 'UwU', display: true }
];

const result = settings
  .filter(c => c.display)
  .map(c => products.filter(o => o.category == c.name));

console.log(result);

이 코드는가있는 productssettings에 대해 배열을 필터링 display:true하므로 큰 배열의 경우 속도가 느릴 수 있습니다. 그러나 filter오버 헤드가 매우 낮으며 OP의 샘플 데이터로 테스트 한 결과 reduce버전보다 3 배 빠른 속도로 실행되는 것으로 나타났습니다 . 더 큰 products어레이 (99 개 항목)로 10 배 더 빠르게 실행됩니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 객체를 기준으로 배열 객체를 정렬하는 방법

분류에서Dev

다른 키의 특정 값으로 객체 배열 정렬

분류에서Dev

다른 키로 자바 스크립트 배열 객체 정렬

분류에서Dev

다른 키로 여러 배열 객체 정렬

분류에서Dev

객체 배열을 다른 구조적 객체의 배열로 변환

분류에서Dev

장고의 다 대다 관계; 한 객체에서 다른 객체로 참조

분류에서Dev

자바 스크립트 : 다른 객체 배열을 기반으로 객체 배열 정렬

분류에서Dev

참조로 Javascript 객체 수정

분류에서Dev

jQuery 정렬 객체 배열

분류에서Dev

참조를 위해 다른 배열을 사용하여 객체 배열을 정렬하는 방법은 무엇입니까?

분류에서Dev

다른 객체를 가진 배열 목록 정렬

분류에서Dev

다른 객체를 기반으로 객체 배열을 정렬하는 방법은 무엇입니까?

분류에서Dev

객체의 참조만으로 배열에서 객체 제거

분류에서Dev

객체의 배열을 구조가 다른 객체의 다른 배열로 변환

분류에서Dev

배열에서 $ pull 객체를, 다른 배열에서 $ pull 참조

분류에서Dev

두 개의 다른 값으로 객체 배열을 정렬하는 방법

분류에서Dev

객체 참조 객체의 인스턴스로 설정되지 않았습니다.

분류에서Dev

객체 참조가 Google Cloud Loadobject에서 객체의 인스턴스로 설정되지 않았습니다.

분류에서Dev

다른 태그로 동일한 객체 참조

분류에서Dev

자바에서 2 개의 다른 하위 객체로 객체 목록 정렬

분류에서Dev

다른 객체 키를 기준으로 자바 스크립트 객체 정렬

분류에서Dev

참조로 객체 전달

분류에서Dev

날짜별로 객체 배열 정렬

분류에서Dev

다른 객체 배열로 객체 배열 채우기

분류에서Dev

ReactJS-배열의 객체를 다른 객체로 교체

분류에서Dev

React에서 객체 키로 객체의 상태 배열 정렬

분류에서Dev

객체 속성에 따라 객체로 배열 정렬

분류에서Dev

객체 내 중첩 된 값으로 배열 객체 정렬-Javascript

분류에서Dev

다른 로컬 객체에 의해 정의 된 객체 반환

Related 관련 기사

  1. 1

    다른 객체를 기준으로 배열 객체를 정렬하는 방법

  2. 2

    다른 키의 특정 값으로 객체 배열 정렬

  3. 3

    다른 키로 자바 스크립트 배열 객체 정렬

  4. 4

    다른 키로 여러 배열 객체 정렬

  5. 5

    객체 배열을 다른 구조적 객체의 배열로 변환

  6. 6

    장고의 다 대다 관계; 한 객체에서 다른 객체로 참조

  7. 7

    자바 스크립트 : 다른 객체 배열을 기반으로 객체 배열 정렬

  8. 8

    참조로 Javascript 객체 수정

  9. 9

    jQuery 정렬 객체 배열

  10. 10

    참조를 위해 다른 배열을 사용하여 객체 배열을 정렬하는 방법은 무엇입니까?

  11. 11

    다른 객체를 가진 배열 목록 정렬

  12. 12

    다른 객체를 기반으로 객체 배열을 정렬하는 방법은 무엇입니까?

  13. 13

    객체의 참조만으로 배열에서 객체 제거

  14. 14

    객체의 배열을 구조가 다른 객체의 다른 배열로 변환

  15. 15

    배열에서 $ pull 객체를, 다른 배열에서 $ pull 참조

  16. 16

    두 개의 다른 값으로 객체 배열을 정렬하는 방법

  17. 17

    객체 참조 객체의 인스턴스로 설정되지 않았습니다.

  18. 18

    객체 참조가 Google Cloud Loadobject에서 객체의 인스턴스로 설정되지 않았습니다.

  19. 19

    다른 태그로 동일한 객체 참조

  20. 20

    자바에서 2 개의 다른 하위 객체로 객체 목록 정렬

  21. 21

    다른 객체 키를 기준으로 자바 스크립트 객체 정렬

  22. 22

    참조로 객체 전달

  23. 23

    날짜별로 객체 배열 정렬

  24. 24

    다른 객체 배열로 객체 배열 채우기

  25. 25

    ReactJS-배열의 객체를 다른 객체로 교체

  26. 26

    React에서 객체 키로 객체의 상태 배열 정렬

  27. 27

    객체 속성에 따라 객체로 배열 정렬

  28. 28

    객체 내 중첩 된 값으로 배열 객체 정렬-Javascript

  29. 29

    다른 로컬 객체에 의해 정의 된 객체 반환

뜨겁다태그

보관