按 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; });
如果我有这样的数组:
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; });