2

別の配列の順序に基づいて配列を配置しようとしています

function Sort(old, new){
  var temp = [];
   for(var i=0; i<old.length; i++){
        temp[i] = old[new[i]];
   }
  return temp;
}

temp[]追加のアレイを使用せずに同じことを達成することは可能ですか?

4

1 に答える 1

1

newまず第一に、それはおそらく変数名として避けるべきキーワードであることに注意したいと思います。

jQuerymapを使用すると、これを実行できますが、一時変数が内部で使用される可能性は十分にあります。そのプロジェクトの良いところは、それが改善され続けることであり、その関数が現在非効率的であっても、別の方法で呼び出す必要がなく、後でより効率的になる可能性があります。

jQueryの使用に反対しない場合は、次の1つのライナーを使用します。

var oldArray = ['a', 'b', 'c', 'd'],
    newOrder = [1, 3, 0, 2];

oldArray = jQuery.map(newOrder, function(val) { return oldArray[val]; });

に並べ替える必要oldArrayがあり['b', 'd', 'a', 'c']ます。oldArrayただし、まだ新しい配列オブジェクトに置き換えています。それは本当にあなたが達成しようとしていることに依存します。一時変数を完全に回避できるとは思いませんが、単純さ、速度効率、メモリ効率など、さまざまな解決策があります。

于 2013-02-02T22:44:33.837 に答える