1

次の JavaScript 関数 (より大きな「クラス」の一部) を作成して、オブジェクトを使用するすべてのユーザーが属性値を「values」プロパティに格納できるようにしました。

function _updateAttributes(attribute, value) {
    _attributes[attribute] = { values: { value: value }};
}

フラットな構造では問題なく機能しますが、サブプロパティに使用しようとするとバラバラになります。

次のコードを実行した後:

myEntity.updateAttribute('name', 'Frankenstein');
myEntity.updateAttribute('name.source', 'John Doe');

次の構造を希望します。

{
    "attributes": {
        "name": {
            "values": {
                "value": "Frankenstein"
            },
            "source": {
                "values": {
                    "value": "JohnDoe"
                }
            }
        }
    }
}

代わりに、次のように表示されます。

{
    "attributes": {
        "name": {
            "values": {
                "value": "Frankenstein"
            }
        },
        "name.source": {
            "values": {
                "value": "JohnDoe"
            }
        }
    }
}

この JavaScript をきれいに書く方法はありますか? それとも、文字列を分割して手動で構造を構築する必要がありますか?

注:好ましい構造でさえ少し奇妙であることに気付きましたが、この形式を期待する Java オブジェクトにマッピングしているため、ここにはオプションがありません。

4

1 に答える 1

1

文字列を解析する必要があります (parseこれは少し強力でsplit('.')、ループのある単一のものです)。

しかし、率直に言って、よりクリーンな方法は次のようになります。

myEntity.name = {values: 'Frankenstein'};
myEntity.name.source = {values: 'John Doe'};
于 2013-02-18T18:40:04.393 に答える