我的应用程序中有一个这样的 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;
}
现在我有三种不同的方法,我不太喜欢其中任何一种。我认为这应该是一个相当普遍的问题,那么您将如何解决这个问题?如果要多次使用派生属性怎么办?