-1
オブジェクトの配列をソートしようとしていますが、ソートしているプロパティはあらかじめわかっていません。これは変数として保存されます。JS変数のプロパティによるオブジェクトの並べ替え
var items = [
{foo: "4", bar: "5"},
{foo: "7", bar: "1"},
{foo: "5", bar: "9"},
];
var whatToSort = "";
if (Math.random() > .5) {
whatToSort = "foo"
} else {
whatToSort = "bar"
};
items.sort(function(a, b){
return b.whatToSort - a.whatToSort;
};
変数whatToSort
が使用されている場合は、私のsort()
機能がb.bar - a.bar
を返しますがない場合、これは動作します。これを行う方法はありますか?
return b[whatToSort] - a[whatToSort];
そうでない場合は、JSエンジンは、あなたが文字通り「whatToSort」と命名されている特性を比較していると考えて: