文字列パスを使用して、JavaScript オブジェクトと配列のネストされた構造をトラバースします
P粉897881626
P粉897881626 2023-08-15 21:01:19
0
2
365

次のようなデータ構造があります:

var someObject = { 'パート1' : { '名前': 'パート 1', 'サイズ': '20'、 「数量」:「50」 }、 'パート2' : { '名前': 'パート 2', 'サイズ': '15'、 「数量」:「60」 }、 'パート3' : [ { '名前': 'パート 3A', 'サイズ': '10'、 「数量」:「20」 }、{ '名前': 'パート 3B', 'サイズ': '5'、 「数量」:「20」 }、{ '名前': 'パート 3C', 'サイズ': '7.5'、 「数量」:「20」 } ] };

次の変数を使用してデータにアクセスしたいと考えています:

var part1name = "part1.name"; var part2quantity = "part2.qty"; var part3name1 = "part3[0].name";

part1name には、someObject.part1.name の値 (「Part 1」) を入力する必要があります。同じことがpart2quantityにも当てはまり、60にパディングされます。

純粋な JavaScript または JQuery を使用してこれを実現する方法はありますか?

P粉897881626
P粉897881626

全員に返信 (2)
P粉720716934

これは、_.get(obj, property)を使用する lodash 経由でサポートされるようになりました。https://lodash.com/docs#get

を参照してください。

ドキュメントの例:

リーリー
いいねを押す+0
    P粉733166744

    すでに持っていた同様のコードに基づいてこれを作成しましたが、うまく機能するようです:

    リーリー ###使用法:### リーリー

    http://jsfiddle.net/alnitak/hEsys/

    で実際の例をご覧ください。

    EDIT

    左端のインデックスがオブジェクト内の適切にネストされたエントリに対応しない文字列が渡されると、このコードがエラーをスローすることに気づいた人もいます。これは当然の懸念ですが、呼び出されたときにこの関数が黙ってunknownを返すよりも、try/catchブロックを使用して処理するほうが適切だと思います。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!