小编Seb*_*vez的帖子

对javascript上的数组感到困惑

我想基于另外两个数组创建下一个数组:

array1 = ['a', 'b']
array2 = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想创建下一个数组

newArray = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    var test1 = ['a', 'b'];
    var test2 = [1,2,3], arr1 = [], arr2 = [];

    for(var i = 0; i < test1.length; i++){
       arr1 = [];
       arr1.push(test1[i]);
      for(var x = 0; x < test2.length; x++){
        if(arr1.length > 1)
        	arr1.pop();
        arr1.push(test2[x])
        arr2.push(arr1);
        
      }
    }

console.log("arr1:",JSON.stringify(arr1), "arr2:" ,JSON.stringify(arr2));
Run Code Online (Sandbox Code Playgroud)

但它返回第二个数组的最后一个元素.

[['a',3], ['a',3], ['a',3], ['b',3], ['b',3], ['b',3]]
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

javascript arrays

3
推荐指数
1
解决办法
140
查看次数

标签 统计

arrays ×1

javascript ×1