我的問題: 我有一個對象的數組,我通過一個對象鍵對ASC DESC進行排序,之後我需要對將按照對象數組排序方式排序的字符串數組進行排序。 例如:如何對一個數組和另一個數組進行排序?
arrayOfObjects = [{name:"john",nuber:6,food:"pizza"},
{name:"david",nuber:2,food:"gulash"},
{name:"margaret",nuber:7,food:"gugi barries"}]
arrayOfStrings = ['r1','r2','r3']
所以在arrayOfObjects每個對象具有它自己的字符串。所以說,約翰有r1,他們都是第一次索引,當我按數字排序約翰第二,並且我希望他的數字也第二(以及大衛和瑪格麗特數字)
我需要重新-arrange的arrayOfStrings以同樣的方式(我不關心它是什麼排序)的arrayOfObjects進行了排序
我的排序功能:
dataArray.sort(dynamicSort(sortBy));
function dynamicSort(property) {
var sortOrder = 1;
if(property[0] === "-") {
sortOrder = -1;
property = property.substr(1);
}
return function (a,b) {
if(direction=='asc'){
var c = b;
b=a;
a=c;
}
var result = (b[property] < a[property]) ? -1 : (b[property]> a[property]) ? 1 : 0;
return result * sortOrder;
}
}
您可以爲要排序的對象添加一個屬性,例如'{name:「john」,r:'r1'...',然後在對數組進行排序時檢索這些值。 – Hacketo