0

chromeコンソールに移動して次のように書くと、chromeのjsコンソールに非常に奇妙な問題があります。

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

「未定義」を返すので、numeroは2つの要素を持つ配列だと思いますが、次のように書くと:

numero

戻り値:

[Array[2]]

numero.length

そして1を返します.....なぜですか?2を返さない??? 私はどこで間違っていますか?2 を返すメソッドを指定できますか? 前もって感謝します

編集:私の問題を説明します。2つのアイテムを選択したときにこれを返す関数があります:

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

そして、これは1つのアイテムを選択したとき:

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

2番目のものは配列ではないことに注意してください。

今、私はこのメソッドを使用して、選択したアイテムの変更をアクティブにし、グローバル変数を計算します:

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

ただし、アイテムを1つだけ選択した場合は、常に1または文字数を返します。

4

3 に答える 3

6

arrayotherの中に を作成しているため、array1 が返されます。

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 );

于 2013-08-26T17:07:28.453 に答える
1

New Array を使用しないでください。リテラル表記のみを使用してください。

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

更新(コメントに基づく)

単一の文字列を返す関数myFolders.getSelected()があり、それを配列に追加したい場合は、これを宣言的に行うことができます。

var numero = [myFolders.getSelected()]

または、ループなどで複数の値を追加する予定がある場合は、新しい値を配列にプッシュできます

var numero = [];
...
numero.push(myFolders.getSelected());
于 2013-08-26T17:07:46.800 に答える