프로그래밍 언어/JavaScript
JavaScript) 자바스크립트 객체 내 같은 값 찾기, 추출하기. 특정 값 추출하기, 객체 특정 값 기준으로 정렬하기. 객체 정렬
luana_eun
2023. 12. 7. 16:43
728x90
예시
let testObject = [
{ num : 1, name : '선물상자', price : 1000, count : 10 },
{ num : 2, name : '선물포장', price : 700, count : 5 },
{ num : 3, name : '볼펜', price : 1500, count : 7 },
{ num : 4, name : '모니터', price : 2000, count : 15 },
{ num : 5, name : '과자', price : 2000, count : 20 },
{ num : 6, name : '선물리본', price : 300, count : 21 }
]
특정 값을 가진 객체만 출력하기
[객체].filter( f => f.[키값] == [조건] );
ex) testObject.filter( f => f.name == '과자' );
특정 값 포함한 객체 출력
[객체].filter( f => f.[키값].includes([조건]) );
ex) testObject.filter( f => f.name.includes('선물') );
특정 값 기준으로 정렬
오름차순 : [객체].sort((a, b) => {return a.[키값] - b[키값]})
내립차순 : [객체].sort((a, b) => {return b.[키값] - a[키값]})
ex) testObject.sort((a, b) => {return a.price - b.price});
testObject.sort((a, b) => {return b.price - a.price});
정렬은 꼭 sort로 안해도 되고, reverse로도 가능하다. 더 편한걸로 사용!
특정 값 기준으로 정렬(한글, 영문)
// 오름차순
testObject.sort(function(a, b) {
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
// 내림차순
testObject.sort(function(a, b) {
return a.name > b.name ? -1 : a.name > b.name ? 1 : 0;
});
// 영어 대소문자 통일
testObject.sort(function(a, b) {
var x = a['name'].toLowerCase();
var y = b['name'].toLowerCase();
return x > y ? -1 : x > y ? 1 : 0;
});
객체 다중 정렬하기
가격을 기준으로 하되, 가격이 같을 경우, 재고 순으로 정렬을 하고싶다고 하자.
testObject.sort(function(a, b) {
if(a.price == b.price) { // 첫번째 기준
return a.count - b.count // 두번째 기준
}
return a.price - b.price
});
728x90