2016-08-03 13 views
1

私は2つの配列を持っています。最初の配列の名前と2番目の配列のインデックス。私はC#(Array.sort()プロパティ)を注文しました。javascriptで2つの配列を結合する方法(C#(Array.sort())のように)

例:配列名はOrderedNamesです。

var names = OrderedName.SelectMany(x => x.Names)  // names array 
var indexes = OrderedName.SelectMany(x => x.Indexes) // indexes array 
Array.sort(indexes,names)       // ordered names with indexes 

このC#はLINQで行いました。

私はJavaScriptで同じことをしたいと思います。

だから、(例えば)以下のように私のJavascriptコード:

var names = Enumerable.From('$.OrderedNames').SelectMany('$.Names').ToArray(); 
var indexes = Enumerable.From('$.OrderedNames').SelectMany('$.Indexes').ToArray(); 

私は名前とインデックスを選択することができます。私は2つの配列をマージして並べ替えたい。 C#Array.sort()でこれを行いましたが、Javascriptではできませんでした。

お願いしますか?

+1

.. map.sort.mapずにあなたも、このようにそれを行うことができると思います。 'JS'から直接' .NET'機能( 'LINQ')を使うことはできません。 –

+0

JavaScriptを使用して同じプロセスを実行するにはどうすればよいですか?私は知っている、私はJSから直接.Netの機能を使用することはできません。 @ ext0 – eagle

+0

Check http://stackoverflow.com/documentation/javascript/187/arrays/4206/sorting-arrays#t=201608031948491011675 – CMedina

答えて

0

興味深い質問のようにソートされた名前を返すことができます。私はあなた `JS`コードをコンパイルするつもりはない今を伝えることができます

var names = ['rhino', 'hippo', 'tiger', 'badger', 'crocodile'], 
 
    keys = [4, 5, 3, 1, 2], 
 
    clone = names.slice(), 
 
    sorted = names.sort((a,b) => keys[clone.indexOf(a)]-keys[clone.indexOf(b)]); 
 
console.log(sorted);

1

あなたは、一緒に名前とキーを組み合わせて、それらを並べ替えるし、この

var names = ['two', 'three', 'one', 'four']; 
var keys = [2, 3, 1, 4]; 

var sortedNames = names 
        .map((n, i) => { return { name: n, key: keys[i] }}) 
        .sort((a, b) => a.key - b.key) 
        .map(n => n.name); 

console.log(sortedNames); // ['one', 'two', 'three', 'four']'; 
+0

素晴らしいです。どうもありがとう ! ! @ user1399195 – eagle

関連する問題