解決策:
これを実現するには、両方のアレイを1つに圧縮する必要があります。これは、次の2つの配列がある場合です。
sortThis=[3,1,2];
sortAccording=["With 3","With 1","With 2];
それらを圧縮すると、次の配列が作成されます。
zipped = [{a: 3, b: "With 3"}, {a: 1, b: "With 1"}, {a: 2, b: "With 2"}];
次に、次のように並べ替えます。
zippedAndSorted = [{a: 1, b: "With 1"}, {a: 2, b: "With 2"}, {a: 3, b: "With 3"}];
次は何?
この配列を必要な順序で並べ替えたら、map関数を使用して値を抽出する必要があります。最終的に、2つの配列を同じ基準で並べ替えることができます。
コード:
// your arrays
sortThis=[3,1,2];
sortAccording=["With 3","With 1","With 2"];
// the zip function
function zip(a,b) {
return a.map(function(aa, i){ return { i: aa, j: b[i]};} )
};
// ziping and sorting the arrays
var zipped = zip(sortThis, sortAccording);
zippedAndSorted = zipped.sort(function(a,b){ return a.i - b.i; });
// your two sorted arrays
sortedThis = zippedAndSorted.map(function(a){ return a.i;});
sortedAccording = zippedAndSorted.map(function(a){ return a.j;});
ここでも機能していることがわかります:http://jsfiddle.net/lontivero/cfpcJ/
幸運を!