2017-10-07 25 views
2

クリックカウントでimgUrl配列を並べ替える必要があります。私は2つの配列を持っています。numpyのargsortに相当するjavascriptは何ですか?

clickCount = [5,2,4,3,1] 
imgUrl  = ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'] 

numpyでは簡単です。私はorder = np.argsort(clickCount)を使用し、別の配列newArray = [imgUrl[i] for i in order]を作成します。

私はどのようにjavascript(好ましくはバニラ)で同じ効果を達成しますか?

答えて

6

pythonでとも呼ばれるDecorate-Sort-Undecorate(DSU)を使用することができます。

DSU:

  1. 飾り - 必要なソート・データと共に使用Array#Mapアレイ内の各項目を豊かに
  2. ソート - ソート
  3. Undocrateを追加されたデータを使用して - 使用してソートされたデータを抽出しますアレイ#マップ再び

デモ:

const clickCount = [5,2,4,3,1]; 
 
const imgUrl = ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg']; 
 

 
const result = imgUrl 
 
    .map((item, index) => [clickCount[index], item]) // add the clickCount to sort by 
 
    .sort(([count1], [count2]) => count2 - count1) // sort by the clickCount data 
 
    .map(([, item]) => item); // extract the sorted items 
 
    
 
console.log(result);

+0

私はWikipediaのページを読んでいますが、あなたは速い、将来の参照のために要約を追加することができます。 –

+0

@SouradeepNanda - 追加されました。 –

関連する問題