2017-08-21 7 views
1

クイック質問。私は重複したインデックスを使用して配列を作成する必要があります。例えば、私のような配列があります。あるなら、私に知らせてくださいJavascriptを使用して重複インデックスの新しいループを作成します。

[ 
    [2, 3, 4, 6, 7], 
    [2, 3], 
    [2], 
] 

var array = [2, 3, 2, 4, 3, 2, 6, 7]; 

を私はそれぞれ重複したインデックスのための新たなループの相互作用を取得する必要があり、応答は次のようなものでなければなりませんそれを行うためのいくつかの関数を作成する方法について説明します。

ありがとうございました!

+2

指名手配結果の背後にあるロジックは何ですか? – Teemu

+2

何を試しましたか? – marvel308

+0

@ Teemu:理解しているように、値を見つけたときは、その番号をまだ持っていない最もインデックスの小さい出力配列に入れてみるようです。 – StriplingWarrior

答えて

2

ような何かを行うことができます。

var array = [2, 3, 2, 4, 3, 2, 6, 7]; 
 
var obj = {}, result = [] 
 
array.forEach(function(e) { 
 
    obj[e] == undefined ? obj[e] = 0 : obj[e] += 1; 
 
    result[obj[e]] = (result[obj[e]] || []).concat(e) 
 
}) 
 

 
console.log(JSON.stringify(result))

2

あなたはあなただけの各要素の出現の店舗番号に一つのオブジェクトを使用すると、結果の配列を作成するために、その値を使用することができ、この

var array = [2, 3, 2, 4, 3, 2, 6, 7]; 
 
array.sort(); 
 
let idx = 0, result = []; 
 
for(let i=0; i<array.length; i++){ 
 
    if(i>0 && array[i] != array[i-1]){ 
 
     idx = 0; 
 
    } 
 
    if(idx == result.length) 
 
     result[idx] = []; 
 
    result[idx].push(array[i]); 
 
    idx++; 
 
} 
 

 
console.log(result);

+0

正常に動作し、期待どおりに動作します!ありがとうございました! – WillianLKeller

関連する問題