2

好的,所以我有这个简单的代码:

for(var i=0; i<lines.length; i++) {
    elements += myFunction(lines[i]);
}

whereelements开头是一个空数组,myFunction()只是一个返回字符串数组的函数。

问题是,如果myFunction()返回一个包含单个字符串的数组,则将+=其解释为字符串 concat 来代替数组 concat。在循环结束时,结果只是一个长字符串,而不是一个数组。

我尝试push()用这些值代替串联,但这只是给了我一个带有单项数组的二维矩阵。

我该如何解决这个类型转换问题?先感谢您 !

4

5 回答 5

1

尝试 :

 for(var i=0; i<lines.length; i++) {
        elements [i] = myFunction(lines[i]);
    }

我想它可以解决问题。

于 2012-12-18T06:47:09.420 回答
1

您可以使用数组concat功能:

elements = elements.concat(myFunction(lines[i]));
于 2012-12-18T06:47:52.197 回答
0

大概你想要类似的东西:

var arrs = [[0],[1,2],[3,4,5],[6]];
var result = [];

for (var i=0, iLen=arrs.length; i<iLen; i++) {
  result = result.concat(arrs[i]);
}

alert(result); // 0,1,2,3,4,5,6

啊,你想连接一个函数的结果。相同的概念,请参阅其他答案。

于 2012-12-18T06:53:28.327 回答
0

你也可以使用myArray[myArray.length] = someValue;

于 2012-12-18T06:56:25.910 回答
0
let newArray = [].concat(singleElementOrArray)
于 2016-08-10T05:46:12.573 回答