2016-05-04 12 views
1

以下のコードでは、時間変数(time11とtime12)を時間と分の値に分割し、それらの値をプッシュします(時間11時間のアレイ1、&分、時間12のアレイ2、&分)。私が抱えている問題は、コンソールにアレイを印刷して、[["" 17 "、" 50 "]]と[[" 04 "、" 34 "]]のように表示されるときです。 ["17"、 "50"] & ["04"、 "34"]のように印刷されます。誰もが2組の角括弧を作成している理由と外側のセットを取り除く方法を知っていますか?すべての助けに感謝します。array.push()を使用した二重角括弧--- JavaScript

おかげ

var time11 = "17:50"; 
var time12 = "04:34"; 

array1 = []; 
array2 = []; 

var timeDifference = function(time1, time2){ 
    array1.push(time1.split(/[^\d]/)); 
    array2.push(time2.split(/[^\d]/)); 
    console.log(array1); 
    console.log(array2); 
}; 

timeDifference(time11, time12); 
+2

'split'が配列を返してから、それを' array1'/'' array2'配列?それ以外に何を期待しますか? – Bergi

+0

'timeDifference'をいくつかの値で2回呼び出してみてください。 – Bergi

+1

あなたが望むものを得るには 'array1 = time1.split(/ [^ \ d] /) ';' –

答えて

2

pushは配列に要素を追加し、そしてsplitの配列を返します。したがって、配列の要素として配列を追加することになります。両方の配列には1つの要素(配列)があります。

お探しの方法はconcatで、2つの配列を連結します。しかし空の配列から始めているので、splitの出力を配列に代入するだけでよいでしょう:

array1 = time1.split(/[^\d]/); 
関連する問題