我在看板上挖掘的所有问题都没有真正回答我的问题。所以就请教这里的专家。首先,非常感谢您继续阅读。我真的很感激 Stackoverflow 的一切,希望我现在成为成员(member)后可以做出贡献。
我想基于从另一个 JSON 对象设置的变量动态创建一个 JSON 对象,每个循环使用 jQuery。我认为我的语法以及我对这些东西的了解可能有点偏差。
我希望得到以下 JSON 结构:
{
desktop:{
title:300,
rev:200
}
}
其中“desktop”是来自另一个不在此循环中的 JSON 对象的值,我可以称之为没问题,实际上它实际上是我在另一个 JSON 对象上设置的名称值。我正在遍历名为列的对象中的数组,但想设置一个包含所有宽度的单独对象,因为列是可调整的,并且可以通过我将其推送到的另一个框架访问,我想保留这些宽度。
我试图在循环中执行此操作:
var colWidths = {};
$.each(columns, function(i) {
colWidths.desktop.title = columns[i].width;
});
我可以成功提醒 columns[i].width。我遇到的问题是创建和访问它。我似乎所做的一切似乎都是正确的,但事实并非如此。也许是我或我的设置?你能告诉我如何正确编码吗?或者,如果这不可能,我可以创建一个 Javascript 对象。提前致谢!
最佳答案
欢迎使用 Stackoverflow。您没有写下您收到的任何错误消息,因此我假设如下。
// prepare the object correctly first
var colWidths = {
desktop: {
title: 0
}
};
// then ADDING each value with += instead of =
// (because in your code you will just have the last value)
$.each(columns, function(i) {
colWidths.desktop.title += columns[i].width;
});
编辑
var grid = {
"name": "desktop",
"columns": [
{
"id": "icons",
"width": 50},
{
"id": "title",
"width": 200},
{
"id": "name",
"width": 300},
{
"id": "revision",
"width": 400}
]
};
var columns = grid.columns;
var gridName = grid.name;
var colWidths = {};
// CHANGE HERE
colWidths[gridName] = {};
$.each(columns, function(c) {
var col = columns[c];
var colname = col.id;
var colwidth = col.width;
// CHANGE HERE
var thisGrid = colWidths[gridName];
if(!thisGrid[colname]) thisGrid[colname] = 0;
thisGrid[colname] += colwidth;
});
//alert(colWidths.desktop.title);
document.write(JSON.stringify(colWidths));
// RESULT:
// {"desktop":{"icons":50,"title":200,"name":300,"revision":400}}
关于javascript - 每个循环从 jQuery 创建 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063720/