按 javascript 中的特定值对数组进行排序

sorting array by certain value in javascript

如果我有这样的数组:

var myArray = []

for(i = 0; i < 10; i++) {
 myArray.unshift({
  myString: 'string'+ i +'',
  myValue: i;
 });
}

并希望按 'myValue' 值对其进行排序。喜欢

myArray.myValue.sort (function(a, b){return a-b});

然而,这不起作用。

您是说您希望按 myValue 排序?

myArray.sort(function a, b) { 

  return a.myValue - b.myValue;

});

如果您只想对一个对象 属性 进行排序(而其余的保持不变),您需要做的是复制数组中每个项目的特定 属性 ,对其进行排序,然后将属性复制回来:

// make a copy of the myValues into a new array containing just those
var myValueArray = myArray.map(function(item) { return item.myValue; });
// sort just the myValues in the copy 
myValueArray.sort();
// copy the sorted myValues back
myValueArray.forEach(function(item, index){ myArray[index].myValue = item; });