programing

jquery 또는 javascript를 사용하여 객체 배열을 정렬하는 방법

yoursource 2022. 9. 23. 22:41
반응형

jquery 또는 javascript를 사용하여 객체 배열을 정렬하는 방법

오브젝트 배열:

var array = [(id, name, value),(id, name, value)]; //and so on

속성 이름의 오름차순으로 어레이를 정렬하려면 어떻게 해야 합니까?(array[i][1])?

난 이걸 시도했어:array[i][1].sort()근데 안 되네.

제발 저좀 도와주세요!

편집: 어레이에 3개 이상의 개체를 포함할 수 있습니다.수백 개를 포함할 수 있습니다.

편집: "복제" 질문 2년 전에 질문을 받았는데 왜 이 질문이 중복으로 표시됩니까?

//This will sort your array
function SortByName(a, b){
  var aName = a.name.toLowerCase();
  var bName = b.name.toLowerCase(); 
  return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
}

array.sort(SortByName);
var array = [[1, "grape", 42], [2, "fruit", 9]];

array.sort(function(a, b)
{
    // a and b will here be two objects from the array
    // thus a[1] and b[1] will equal the names

    // if they are equal, return 0 (no sorting)
    if (a[1] == b[1]) { return 0; }
    if (a[1] > b[1])
    {
        // if a should come after b, return 1
        return 1;
    }
    else
    {
        // if b should come after a, return -1
        return -1;
    }
});

sort함수는 두 개의 인수를 사용하는 함수인 추가 인수를 사용합니다.이 함수는 반환되어야 합니다.-1,0또는1두 인수 중 어떤 것이 정렬에서 먼저 와야 하는지에 따라 달라집니다.상세 정보

다차원 배열의 구문 오류도 수정했습니다.

//objects
var array = [{id:'12', name:'Smith', value:1},{id:'13', name:'Jones', value:2}];
array.sort(function(a, b){
    var a1= a.name.toLower(), b1= b.name.toLower();
    if(a1== b1) return 0;
    return a1> b1? 1: -1;
});

//arrays
var array =[ ['12', ,'Smith',1],['13', 'Jones',2]];
array.sort(function(a, b){
    var a1= a[1], b1= b[1];
    if(a1== b1) return 0;
    return a1> b1? 1: -1;
});
data.sort(function(a,b) 
{
   return a.val - b.val;
});

sort 메서드에는 커스텀 비교 함수를 전달하기 위한 선택적 인수가 포함되어 있습니다.

어레이 어레이를 원하는 경우:

var arr = [[3, "Mike", 20],[5, "Alex", 15]];

function compareName(a, b)
{

  if (a[1] < b[1]) return -1;
  if (a[1] > b[1]) return 1;
  return 0;
}
arr.sort(compareName);

그렇지 않으면 객체 배열을 원하는 경우 다음을 수행할 수 있습니다.

function compareName(a, b)
{

  if (a.name < b.name) return -1;
  if (a.name > b.name) return 1;
  return 0;
}

실제 다차원 배열을 작성하는 대신 (거의) JavaScript 객체 배열을 작성하는 것 같습니다.어레이를 다음과 같이 정의해 보십시오.->

var array = [ [id,name,value], [id,name,value] ]

그게 도움이 됐으면 좋겠네요!

언급URL : https://stackoverflow.com/questions/5503900/how-to-sort-an-array-of-objects-with-jquery-or-javascript

반응형