В моем приложении есть такой объект 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;
}
Теперь у меня есть три разных подхода, и мне не очень нравится ни один из них. Я думаю, что это должно быть довольно распространенной проблемой, так как бы вы подошли к этому? А что, если производный атрибут будет использоваться более одного раза?