JavaScriptは、オブジェクト配列を異なるフィールドで並べ替えます.
788 ワード
オブジェクト配列があると仮定して、あるオブジェクト属性に従って配列を並べ替えたいです.配列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
は、このようにして、異なる属性で並べ替えられている.