Javascript chrome错误中的数组长度

时间:2013-08-26 17:05:19

标签: javascript google-chrome

我在chrome中使用js控制台有一个非常奇怪的问题, 如果我进入chrome控制台并写道:

var numero = new Array(["/php/.svn/tmp", "/php/.svn/props"]);

返回“undefined”所以​​我认为numero是一个包含2个元素的数组,但是如果我写的话:

numero

返回:

[Array[2]]

之后

numero.length

并返回1 .....为什么?不要回2 ??? 我哪里做错了? 我能给出一个返回2的方法吗? 提前谢谢

编辑: 我会解释我的问题。 我有一个功能,当我选择2项时返回这个:

myFolders.getSelected()
["/php/.svn", "/php/upload.php"]

这个选择了一项:

myFolders.getSelected()
"/php/upload.php"

如你所知,第二个不是数组。

现在我使用此方法激活更改所选项目以计算全局变量:

function calcoloNumeroElementi(){
    var numero = new Array(myFolders.getSelected());
    numeroElementiSelezionati = numero[0].length;
}

但是当我只选择一个项目时,返回总是1或字符数。

3 个答案:

答案 0 :(得分:6)

您正在其他array内创建array,这就是它返回1的原因。

console.log( numero[0].length ); // 2

所以它应该是:

var numero = ["/php/.svn/tmp", "/php/.svn/props"];

var numero = new Array("/php/.svn/tmp", "/php/.svn/props"); // without `[` and `]`

然后使用console.log( numero.length );

答案 1 :(得分:1)

不要使用New Array,只使用文字表示法:

var numero = ["/php/.svn/tmp", "/php/.svn/props"];

更新(根据您的评论)

如果您的函数myFolders.getSelected()返回单个字符串并且您想将其添加到数组,则可以声明性地执行此操作:

var numero = [myFolders.getSelected()]

或者,如果您打算添加多个值,例如在循环中,您可以将新值推送到数组

var numero = [];
...
numero.push(myFolders.getSelected());

答案 2 :(得分:0)

["/php/.svn/tmp", "/php/.svn/props"]返回包含两个字符串的数组。

new Array(arg0, arg1 ... argn);返回一个数组,其中元素定义为参数

new Array(["/php/.svn/tmp", "/php/.svn/props"]);将返回一个数组,其中第一个元素是两个字符串的数组。

尝试numero[0].length,看看你得到了什么。

或者像var numero = ["/php/.svn/tmp", "/php/.svn/props"];

一样定义你的数组