문자열 및 숫자 값이있는 객체의 배열이 있습니다. 결합 된 값에 대한 작업을 자연스럽게해야합니다. 예 :문자열 및 숫자 키 값을 기반으로 객체 배열에 대한 노드 js 자연 정렬
입력 배열이 단지 키 2는 숫자이고 원하는 KEY3 + KEY1 + 키 2 형식의 오름차순으로 정렬되어야
[
{
key1: '156557_08_315F036D',
key2: 30,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 10,
key3: 'm' },
{
key1: '156557_08_315F036D',
key2: 10,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 15,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 20,
key3: 's' }
]
는 문자열 naturally..not 정렬된다.
출력은 다음과 같습니다 키 2의
[
{
key1: '156557_08_315F036D',
key2: 10,
key3: 'm' },
{
key1: '156557_08_315F036D',
key2: 10,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 15,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 20,
key3: 's' },
{
key1: '156557_08_315F036D',
key2: 30,
key3: 's' }
]
arr.sort(function (a, b) {
return (
a.key3 + a.key1 + parseInt(a.key2) >
b.key3 + b.key1 + parseInt(b.key2) ?
1 :
((b.key3 + b.key1 + parseInt(b.key2) >
a.key3 + a.key1 + parseInt(a.key2)) ?
-1 : 0));
});
시도 toString하지만, 문자열 정렬을했다.
확인. 코드는 어디에 있습니까? – str
이 @str에 추가되었습니다. – nis