ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のドット表記文字列をオブジェクト参照に変換するにはどうすればよいですか?
オブジェクト内のプロパティ パスを表す JavaScript 文字列を指定するドット表記 (例: "a.b") を使用する場合、目標は、この文字列を目的の文字列への実際の参照に変換することです。
この変換を実行する簡単な方法の 1 つは、eval() 関数を使用することです。一般に eval() の使用はセキュリティ上の理由から推奨されませんが、入力文字列が制御され、特定の構文に従うことが期待されるため、この特定のシナリオでは適用できます。このコードでは、単純に eval("obj" string) を使用して、目的のプロパティ参照を取得します。
代替案。簡潔さは劣りますが、潜在的にはより優れたものになります。効率的かつ堅牢なアプローチには、ドット表記文字列をキー名の配列 (["a", "b"] など) に変換し、その後この配列を参照として使用することが含まれます。 path:
const keyArray = dotNotationString.split('.'); const value = obj[keyArray[0]][keyArray[1]];
3 番目のオプションは、入力文字列を使用してオブジェクトを移動する再帰関数を作成することです:
function getPropertyByDotNotation(obj, string) { if (!obj) { return undefined; } if (!string || string.length === 0) { return obj; } const [key, ...rest] = string.split('.'); return getPropertyByDotNotation(obj[key], rest.join('.')); }
この再帰的アプローチ柔軟性を提供し、任意のオブジェクトを処理します
方法の選択は、特定の要件とパフォーマンスの考慮事項によって異なります。信頼できる入力を操作し、簡素化を目指す場合には、eval() が適している可能性があります。パフォーマンス上の懸念やより複雑な入力検証があるシナリオの場合、配列または再帰的アプローチが信頼できる代替手段を提供します。
以上がJavaScript のドット表記文字列をオブジェクト参照に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。