Javascript 根据对象中的值对对象数组进行排序
我有一个对象数组Javascript 根据对象中的值对对象数组进行排序,javascript,sorting,Javascript,Sorting,我有一个对象数组 var winners_tie = [ {name: 'A', value: 111}, {name: 'B', value: 333}, {name: 'C', value: 222}, ] 我想按值的升序对它进行排序因为你的值只是数字,你可以通过比较器函数返回它们的差异 winners_tie.sort(function(first, second) { return first.value - second.value; }); con
var winners_tie = [
{name: 'A', value: 111},
{name: 'B', value: 333},
{name: 'C', value: 222},
]
我想按
值的升序对它进行排序
因为你的值只是数字,你可以通过比较器函数返回它们的差异
winners_tie.sort(function(first, second) {
return first.value - second.value;
});
console.log(winners_tie);
输出
[ { name: 'A', value: 111 },
{ name: 'C', value: 222 },
{ name: 'B', value: 333 } ]
注意:JavaScript的排序不能保证稳定。试试这个:
function compare(a,b) {
if (a.value < b.value)
return -1;
if (a.value > b.value)
return 1;
return 0;
}
winners_tie.sort(compare);
功能比较(a、b){
如果(a值b值)
返回1;
返回0;
}
优胜者分类(比较);
用于演示:用于阵列:
function sort_array(arr,row,direc) {
var output = [];
var min = 0;
while(arr.length > 1) {
min = arr[0];
arr.forEach(function (entry) {
if(direc == "ASC") {
if(entry[row] < min[row]) {
min = entry;
}
} else if(direc == "DESC") {
if(entry[row] > min[row]) {
min = entry;
}
}
})
output.push(min);
arr.splice(arr.indexOf(min),1);
}
output.push(arr[0]);
return output;
}
函数排序_数组(arr、row、direc){
var输出=[];
var min=0;
而(arr.length>1){
min=arr[0];
arr.forEach(函数(条目){
如果(direc==“ASC”){
如果(条目[行]最小[行]){
最小值=输入;
}
}
})
输出推力(分钟);
arr.拼接(arr.indexOf(min),1);
}
输出推送(arr[0]);
返回输出;
}