私は以下のようにjavascriptに2つの配列変数を持っています
var distance = [10, 5, 2, 11, 12];
var places = ['A', 'B', 'C', 'D', 'E'];
私がやりたいのは、距離配列を並べ替えて、番号が昇順で表示されるようにし、それに基づいて場所も表示されるようにすることです。したがって、出力配列は次のようになります。
var distance = [2, 5, 10, 11, 12];
var places = ['C', 'B', 'A', 'D', 'E'];
以下のコードを使用して距離配列を並べ替えようとしましたが、変更されたインデックスをplaces配列に適用するためにどのロジックを使用すればよいかわかりません。
distance.sort(function(a,b){return a - b});
これを試して。JSFIDDLE
var distance = [10, 5, 2, 11, 12];
var places = ['A', 'B', 'C', 'D', 'E'];
var action = [];
distance.sort(function(a,b){
var c= a-b;
action.push(c);
return c;
});
var i=0;
places.sort(function(){
return action[i++];
});
console.log(distance);
console.log(places);
またはあなたはこれを試すことができます
var distance = [10, 5, 2, 11, 12];
var places = ['A', 'B', 'C', 'D', 'E'];
var newArray = [];
distance.forEach(function(v, index){
newArray.push({key: v, value: places[index]})
});
newArray.sort(function(a, b){
return a.key - b.key;
});
distance = [];
places = [];
newArray.forEach(function(v){
distance.push(v.key);
places.push(v.value);
});
console.log(distance);
console.log(places);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加