[JavaScript] 객체가 저장된 배열에서 여러 키로 정렬
9945 단어 JavaScript
이런 느낌의 배열이 있다면.
const items = [
{ id: "6", price: "340", name: "大根" },
{ id: "5", price: "230", name: "ポテト" },
{ id: "1", price: "100", name: "パセリ" },
{ id: "2", price: "340", name: "にんじん" }
]
가격 상승순으로 정렬하고 싶을 때
items.sort((a,b)=>a.price - b.price);
단순히 가격대로 오르고 싶다면 간단하다. 그러면 실현될 수 있다.하지만 이 price만 같은 것이 있다면 id는 오르지 않습니다
const items = [
{ id: "1", price: "100", name: "パセリ" },
{ id: "5", price: "230", name: "ポテト" },
{ id: "6", price: "340", name: "大根" },
{ id: "2", price: "340", name: "にんじん" }
]
이렇게가격 상승 순서대로 & 가격이 같으면 id 상승 순서대로
그러니까 내가 이렇게 하고 싶다는 거야.
const items = [
{ id: "1", price: "100", name: "パセリ" },
{ id: "5", price: "230", name: "ポテト" },
{ id: "2", price: "340", name: "にんじん" },
{ id: "6", price: "340", name: "大根" }
]
실현 방법
items.sort((a,b)=> {
if(a.price > b.price) return 1
if(a.price < b.price) return -1
if(a.id > b.id) return 1
if(a.id < b.id) return -1
return 0;
});
이렇게 이루어질 수 있다.두 개가 아니라 세 개, 네 개와 비교하려는 키가 늘었다면 조건 지점도 늘릴 수 있다.
추기
댓글에선생님께서 나에게 간결하게 쓰는 방법을 가르쳐 주셨기 때문에 나는 보충하여 기억할 것이다.
items.sort((a,b)=> (a.price - b.price) || (a.id - b.id) );
Reference
이 문제에 관하여([JavaScript] 객체가 저장된 배열에서 여러 키로 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oimo23/items/cb1a29bbee5576ce5382텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)