concat空/单项数组

时间:2012-12-18 06:41:38

标签: javascript

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

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

其中elements在开头是一个空数组,而myFunction()只是一个返回字符串数组的函数。

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

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

如何解决这个类型转换问题?提前谢谢!

5 个答案:

答案 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)