アプリケーションに次のような JSON オブジェクトがあります。
var pages = {
home: {
title: "Home",
description: "The home page",
file: "home.html",
url: "/home"
},
blog: {
title: "Blog",
description: "Our blog",
file: "blog.html",
url: "/blog"
}
};
プロパティfile
とurl
は常にそれぞれのキーから派生できるため、現在、コードで上記のオブジェクトを次のように定義しています。
var pages = {
home: {
title: "Home",
description: "The home page"
},
blog: {
title: "Blog",
description: "Our blog"
}
};
$.each(pages, function(key, value) {
value.file = key + ".html";
value.url = "/" + key;
}
ただし、file
とurl
は派生属性であるため、それらをオブジェクトに追加するのは冗長に思えます。しかし、キーではなく各ページの値を渡すため、それをオブジェクトにも追加する必要があり、これも冗長になります。このような:
var pages = {
home: {
title: "Home",
description: "The home page"
},
blog: {
title: "Blog",
description: "Our blog"
}
};
$.each(pages, function(key, value) {
value.jsonKey = key;
}
今、私は3つの異なるアプローチを持っていますが、どれもあまり好きではありません. これはかなり一般的な問題だと思いますが、どのようにアプローチしますか? また、派生属性が複数回使用される場合はどうなるでしょうか?