我需要有关five.myArraysCombined属性的帮助。

我需要它等于1个数组(它目前在小提琴中执行),并且我需要它不将任何数字加在一起。 (因此,数组中的每个数字都不应超过20,就像其他数组中的数字均不超过20)

http://jsfiddle.net/Dc6HN/1/

例如,如果五个数组是这样的

five.myArray1 = [7,2,9,19,3];
five.myArray2 = [6,18,8,1,7];
five.myArray3 = [7,19,4,8,2];
five.myArray4 = [11,9,1,14,5];
five.myArray5 = [3,18,8,9,2];


那么所有这些数组的组合应该像这样

five.myArraysCombined = [7,2,9,19,3,6,18,8,1,7,7,19,4,8,2,11,9,1,14,5,3,18,8,9,2];




相关代码:

function theNumberClass() {
    this.myArray = [[],[],[],[],[]];
    this.myArraysCombined = [];
}
var five = new theNumberClass();

function prePickNumbers(objName, theNum, theSumNum, theMaxNum, theMinNum) {
    var zzz = [];
    for (var x = 0; x < theNum; x += 1) {
    pickNumbers(objName.myArray[x], theNum, theSumNum, theMaxNum, theMinNum);
      zzz += objName.myArray[x];
    }
    objName.myArraysCombined.push(zzz);
}

prePickNumbers(five, 5, 40, 20, 1);


我的最新尝试是使用var zzz,然后将其推入属性,但是当我这样做时,有时会把数组中的数字相加,这不是我所需要的。

我也尝试过使用.concat()进行多次尝试,但似乎将其转换为字符串,有时还会加上数字。

最佳答案

我猜这是“ + =”运算符。此运算符用于对值求和,而不是向数组添加新元素。以下面的代码行为例:

zzz += objName.myArray[x];


我猜是“ myArray [x]”被添加到zzz的值,而不是被附加到数组的末尾。在javascript中向数组添加元素时,push是最好的选择。编写此行的更好方法是:

zzz.push(objName.myArray[x]);


这个问题有点令人困惑,所以我不确定这是否是您要寻找的东西,但希望它将对您有所帮助。

关于javascript - 多个阵列成一个阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21114358/

10-09 23:26