JavaScript에서 객체 키를 사용하여 객체 배열을 정렬하는 방법은 무엇입니까?
15885 단어 javascriptobjectkeysort
자바스크립트 코드를 실행하기 위해 Nodejs를 사용합니다. 터미널 또는 cmd를 입력하여 시스템에 Nodejs가 있는지 여부를 확인할 수 있습니다
node -v
. 가지고 있는 노드의 버전이 표시됩니다. 하지만 없는 경우 nodejs.org에서 다운로드할 수 있습니다.그런 다음 test.js라는 하나의 파일을 만듭니다.
데이터 세트를 가져옵니다.
const data = [
{ name: 'madan', age: '12' },
{ name: 'man', age: '13' },
{ name: 'dan', age: '14' },
{ name: 'dam', age: '11' },
{ name: 'ram', age: '17' },
]
이제 데이터가 준비되었습니다. 데이터 정렬을 위한 논리 구현을 시작하겠습니다. 이를 위해 우리는
data
와 key
라는 두 개의 매개변수를 전달하는 함수를 만들 것입니다. 여기서 data
는 위의 데이터 세트를 정의하고 key
는 name
및 age
가 있는 것처럼 객체에서 사용할 수 있는 정렬하려는 키를 정의합니다.function sortDataBy (data, byKey){
//here your logic code
}
이제 함수 내에서 정렬된 데이터를 저장할 변수 하나를 만듭니다.
let sortedData;
그런 다음
byKey
라는 변수에서 주어진 키로 개체에 있는 모든 키를 확인합니다.if(byKey == 'name'){
//your logic for name
}
else if(byKey == 'age'){
//your logic for age
}
먼저
name
키에 대한 논리를 작성합니다.// we use javascript sort function to compare to value
sortedData = data.sort(function(a,b){
// here a , b is whole object, you can access its property
//convert both to lowercase
let x = a.name.toLowerCase();
let y = b.name.toLowerCase();
//compare the word which is comes first
if(x>y){return 1;}
if(x<y){return -1;}
return 0;
});
이제 우리는
age
키에 대한 로직을 작성하고 있습니다.sortedData = data.sort(function(a,b){
// here a , b is whole object, you can access its property
// it will return the difference to sort function and then
// sort compare that difference is equal to 0 or smaller than 0 or
// greater than 0. on the basis of that it will give sorted number list
return a.age - b.age;
})
마지막에 데이터 변수
sortedData
를 반환합니다.return sortedData;
함수를 완료한 후 객체의 다른 키로 함수를 호출하여 출력을 확인할 수 있습니다.
console.log('sort by age\n');
console.log(sortDataBy(data, 'name'));
console.log('sort by age\n');
console.log(sortDataBy(data, 'age'));
이제 터미널에 입력하여 파일을 실행할 수 있습니다
node test
.출력은
sort by age
[
{ name: 'dam', age: '11' },
{ name: 'dan', age: '14' },
{ name: 'madan', age: '12' },
{ name: 'man', age: '13' },
{ name: 'ram', age: '17' }
]
sort by age
[
{ name: 'dam', age: '11' },
{ name: 'madan', age: '12' },
{ name: 'man', age: '13' },
{ name: 'dan', age: '14' },
{ name: 'ram', age: '17' }
]
마지막으로 사용하기 쉽도록 여기에 전체 코드를 제공합니다.
const data = [
{ name: 'madan', age: '12' },
{ name: 'man', age: '13' },
{ name: 'dan', age: '14' },
{ name: 'dam', age: '11' },
{ name: 'ram', age: '17' },
];
function sortDataBy (data, byKey){
let sortedData;
if(byKey == 'name'){
sortedData = data.sort(function(a,b){
let x = a.name.toLowerCase();
let y = b.name.toLowerCase();
if(x>y){return 1;}
if(x<y){return -1;}
return 0;
});
}else{
sortedData = data.sort(function(a,b){
return a.age - b.age;
})
}
return sortedData;
}
console.log('sort by age\n');
console.log(sortDataBy(data, 'name'));
console.log('sort by age\n');
console.log(sortDataBy(data, 'age'));
감사합니다. 즐거운 코딩하세요!!
Reference
이 문제에 관하여(JavaScript에서 객체 키를 사용하여 객체 배열을 정렬하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/madanlal/how-to-sort-array-of-object-using-object-keys-in-javascript-58f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)