配列のネームホルダーとして文字列を使用することは可能ですか?
var myArray = ["a","b","c"];
var myPointer = "myArray";
console.log(myPointer[1]); //Should return "b"
配列のネームホルダーとして文字列を使用することは可能ですか?
var myArray = ["a","b","c"];
var myPointer = "myArray";
console.log(myPointer[1]); //Should return "b"
はい、できます。私はいくつかの方法を知っています。
最初のものは を使用することですが、悪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];
}
編集: 他の投稿のコメントに記載されているように、これは実際にはポインターではありません。文字列値に基づいて、使用する配列を動的に決定したいと思います。
プリミティブ型、主に文字列/数値/ブール値は、効率化のために値によって渡されます。関数、オブジェクト、配列などのオブジェクトは、参照によって渡されます。
したがって、それをオブジェクトにしてから、それへの参照を使用できます。
この質問を参照してください。
それが役立つことを願っています:)