2017-04-02 7 views
1

私はそれはあなたが本当に文字列で撮りたい場合は、私は2つの文字列を取るだろうし、あなたが例えばを書かれているように、アレイにそれらのそれぞれを変換する良い質問繰り返し番号

+0

あなたが始めたものをお見せしてください – STF

+0

少し説明していただけますか?その入力と出力からの記述が不明です。 –

+0

_ "私の悪いアウトプリント:1,1,4,4,5,5,5,5" _元の質問を編集して、予想される結果を含めることはできますか? – guest271314

答えて

0

だったと信じていなかったので、私は[これを削除2,3,4]と[1,4,5]を連結します。次に、単純なデータ構造アルゴリズムを使用して順序を整えます。たとえば、配列内の各項目を調べ、最小の数であれば0の位置に移動します。次に、次の位置に移動し、最初の位置を除いて、配列内の最小番号を移動しようとします。

0

私は考えている、私はを繰り返す機能があると思います。例えば、それはその後、私はこの質問を終了するためにそれを使用して '3 times.Like a => [a, a, a]

function repeat(a, times) { 
    if (times === 0) return []; 
    return [a].concat(repeat(a, times - 1)); 
} 

を繰り返すことができます。

function repeatAndConcat(times, arr) { 
    return arr.map(function(item, index) { 
    return repeat(item, times[index]); 
    }).reduce(function(a, b) { 
    return a.concat(b); 
    }); 
} 

repeatConcat([2、3、4]、[1、4、5])リターンと[1、1、4、4、4、5、5、5、5]。

最後のフラットな入れ子配列。

+0

私はそれが好きです。それは動作する可能性があります!ありがとう! – WebNeoRaven

+0

@WebNeoRavenよろしくお願いします。 – g1eny0ung

0

あなたが同じ索引

let [len, arr, res] = [[2,3,4], [1,4,5], []]; 
 

 
for (let [key, prop] of arr.entries()) res.push(...Array(len[key]).fill(prop)); 
 

 
console.log(res);

で二番目の配列に値が充填された、第一の配列の要素の値によって設定 .lengthを有するアレイを作成する for..ofループ、拡散素子、 Array.prototype.fill()Array.prototype.entries()を使用することができ
関連する問題