好的,所以我有这个简单的代码:
for(var i=0; i<lines.length; i++) {
elements += myFunction(lines[i]);
}
其中elements
在开头是一个空数组,而myFunction()
只是一个返回字符串数组的函数。
问题在于,如果myFunction()
返回一个包含单个字符串的数组,则+=
将被解释为字符串concat,而不是数组concat。
在循环结束时,结果只是一个长字符串而不是数组。
我尝试push()
代替连接的值,但这只是给了我一个带有单项数组的二维矩阵。
如何解决这个类型转换问题?提前谢谢!
答案 0 :(得分:1)
尝试:
for(var i=0; i<lines.length; i++) {
elements [i] = myFunction(lines[i]);
}
我想它解决了这个问题。
答案 1 :(得分:1)
您可以使用数组concat
功能:
elements = elements.concat(myFunction(lines[i]));
答案 2 :(得分: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
啊,你想连接一个函数的结果。相同的概念,请参阅其他答案。
答案 3 :(得分:0)
您也可以使用myArray[myArray.length] = someValue;
答案 4 :(得分:0)
let newArray = [].concat(singleElementOrArray)