2

配列のネームホルダーとして文字列を使用することは可能ですか?

var myArray = ["a","b","c"];
var myPointer = "myArray";

console.log(myPointer[1]); //Should return "b"
4

4 に答える 4

3

はい、できます。私はいくつかの方法を知っています。

最初のものは を使用することですが、悪eval()だと思うので説明しません。eval()

それを行う 1 つの方法は、使用しているスコープを知ることです。windowスコープを使用している場合は、いつでも実行できますwindow[myPointer][1]。別のスコープを使用している場合は、 を実行するのと同じくらい簡単scope[myPointer][1]です。

スコープを持っていないか、ウィンドウスコープを汚染したくない場合は、いつでも次のようなものを使用できます。

function blork (pointer) {
    var arrays = {
        number : [ 0, 1, 2, 3, 4, 5 ],
        letters : [ 'a', 'b', 'c', 'd', 'e' ]
    }
    return arrays[pointer];
}

編集: 他の投稿のコメントに記載されているように、これは実際にはポインターではありません。文字列値に基づいて、使用する配列を動的に決定したいと思います。

于 2013-09-19T14:03:25.270 に答える
0

プリミティブ型、主に文字列/数値/ブール値は、効率化のために値によって渡されます。関数、オブジェクト、配列などのオブジェクトは、参照によって渡されます。

したがって、それをオブジェクトにしてから、それへの参照を使用できます。

この質問を参照してください。

それが役立つことを願っています:)

于 2013-09-19T14:05:46.153 に答える