2016-09-13 3 views
-1

私の人生の間、私は数字配列を複製する方法を理解できません。配列内の重複する数字| Javascript

期待される結果:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

ここでは、私のコードは、これまでのところです:

const numbers = [1, 2, 3, 4, 5]; 
var result = numbers.map((number) => { 
    return number 
}); 

console.log(result); 

私はあなたが数字の配列を取得し、その配列を複製することができる方法を見つけ出すことはできませんか?

私は、if文行うために始めていた - 「数が1に等しい場合、1を返す」が、この[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

https://jsfiddle.net/e6jf74n7/1/

+4

'var result = numbers.concat(numbers);' –

+0

'map'はどのように機能すると思いましたか? – Bergi

+0

各番号を繰り返し、配列の最後にもう一度戻す – Filth

答えて

3

地図1対のすべての値をマップするように、それは数字を印刷します1つは、それが「地図」と呼ばれる理由です。それはあなたに一つの値を与え、あなたはそれを置き換えるべき値を返します。

const numbers = [1, 2, 3, 4, 5]; 
 
var result = numbers.concat(numbers); 
 

 
console.log(result);

0

マップは、あなたがしたい場合は、単に

numbers.concat(numbers); 

CONCAT使用し、この場合には動作しません。自分自身に、リスト、concatリストを複製する

複数回concatします。

var concatArr = numbers; 
for (var i=0; i < 9 ; i++) { 
     numbers = numbers.concat(concatArr); 
    } 
    console.log(numbers); 

、連結ドキュメント https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

0

最速の方法は、古い配列にスライス()その後、CONCAT()を使用することです。

var arr = [ 1, 2, 3, 4, 5 ]; 
var clone = arr.slice(0); 
var duplicate = arr.concat(clone); 
+1

'slice'を省略するとさらに高速になります... – deceze

関連する問題