JavaScriptは、オブジェクト配列を異なるフィールドで並べ替えます.


オブジェクト配列があると仮定して、あるオブジェクト属性に従って配列を並べ替えたいです.配列sort()メソッドに渡す比較関数は、2つのパラメータ、すなわち比較する値を受信します.しかし、どの属性で並べ替えられているかを指定する方法が必要です.この問題を解決するには、関数を定義して属性名を受信し、この属性に基づいて名来に比較関数を作成します.以下はこの関数の定義です.
function createComparionFun(propertyName)
{
    return function(object1,object2)
   {
       var value1=object1[propertyName];
       var value2=object2[propertyName];
      if(value1value2)
      {
          return 1;
      }else {
        return 0;
      }
   }
}
上のこの関数は次の例のように使用できます.
var data=[{name:"zom",age:18},{name:"nbd",age:20}];
data.sort(creatComparionFun("name"));
alert(data[0].name);//nbd
data.sort(creatComparionFun("age"));
alert(data[0].name);//zom
は、このようにして、異なる属性で並べ替えられている.