1

我试图找到一个同时从两个数组输入数据并将它们放入一个数组的javascript代码。我认为这会起作用,但仔细看,它并不能完全发挥作用。

var tempDeck = [];
var array1 = ["one", "two"];
var array2 = ["three", "four"];
for (i = 0; i < array1.length + array2.length; i++){
  if (i % 2 == 0){
    tempdeck.push(array1[i]);
  }else{
    tempdeck.push(array2[i]);
  }
}

我需要它来输出结果

tempdeck[0] = "one";
tempdeck[1] = "three";
tempdeck[2] = "two";
tempdeck[3] = "four";

我试图避免手动放置它们,因为数字或数组是基于用户输入的。:( 有什么建议么?

4

2 回答 2

2

jsFiddle

您应该只使用较大数组的长度,并且仅在索引处存在值时才添加i

var tempDeck = [];
var array1 = ["one", "two"];
var array2 = ["three", "four"];
var len = array1.length > array2.length ? array1.length : array2.length;
for (i = 0; i < len; i++){
  if( array1.length > i )tempDeck.push(array1[i]);
  if( array2.length > i )tempDeck.push(array2[i]);
}
于 2013-04-05T22:56:46.163 回答
0

http://underscorejs.org/#union

union_.union(*arrays) 计算传入数组的并集:按顺序排列在一个或多个数组中的唯一项的列表。

_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); => [1, 2, 3, 101, 10]

于 2013-04-05T22:57:35.990 回答