프로그래밍 언어/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