2016-05-04 41 views
1

在下面的代码中,我现在试图做的是将时间变量(time11和time12)分成小时和分钟值并推送这些值进入阵列(阵列1的时间为11小时&分钟,阵列2的时间为12小时&分钟)。我遇到的问题是当我将数组打印到控制台时,它们显示为[[“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'两次。 – Bergi

+1

为了得到你想要的东西,你可以写下:'array1 = time1.split(/ [^ \ d] /)';' –

回答

2

push将元素添加到阵列,并且split返回一个数组。因此,您将数组作为元素添加到数组中;你的两个数组都有一个元素,它是一个数组。

你正在寻找的方法是concat这将连接2个数组。但因为你是从一个空数组开始,你可能也只是分裂的输出分配给数组:

array1 = time1.split(/[^\d]/);