Pau*_*aul 5 javascript jquery json
我在董事会中挖出的所有问题并没有真正回答我的问题.所以我会问这里的专家.首先,非常感谢你阅读.我真的很感激Stackoverflow的一切,希望我现在可以贡献我是一名成员.
我想动态创建一个JSON对象,基于从另一个JSON对象设置的变量,每个循环使用jQuery.我认为我的语法和我对这些东西的了解有点偏差.
我想最终得到以下JSON结构:
{
desktop:{
title:300,
rev:200
}
}
Run Code Online (Sandbox Code Playgroud)
"桌面"是来自另一个不在此循环中的JSON对象的值,我可以称之为没问题,实际上它实际上是我在另一个JSON对象上设置的名称值.我循环遍历一个名为columns的对象中的数组,但是想要设置一个包含所有宽度的单独对象,因为列是可调整的,并且可以通过我将其推送到的另一个框架访问,我想保留这些宽度.
我试图在循环中做到这一点:
var colWidths = {};
$.each(columns, function(i) {
colWidths.desktop.title = columns[i].width;
});
Run Code Online (Sandbox Code Playgroud)
我可以成功警告列[i] .width.我遇到的问题是创建和访问它.我似乎所做的一切似乎都是正确的但事实并非如此.也许是我或我的设置?你能告诉我如何正确编码吗?或者我可以创建一个Javascript对象,如果这是不可能的.提前致谢!
欢迎来到 Stackoverflow。您没有写出任何收到的错误消息,因此我假设如下。
\n\n// prepare the object correctly first\nvar colWidths = {\n desktop: {\n title: 0\n }\n};\n// then ADDING each value with += instead of = \n// (because in your code you will just have the last value)\n$.each(columns, function(i) {\n colWidths.desktop.title += columns[i].width;\n});\nRun Code Online (Sandbox Code Playgroud)\n\n编辑
\n\nvar grid = {\n "name": "desktop",\n "columns": [\n {\n "id": "icons",\n "width": 50},\n {\n "id": "title",\n "width": 200},\n {\n "id": "name",\n "width": 300},\n {\n "id": "revision",\n "width": 400}\n ]\n};\n\nvar columns = grid.columns;\nvar gridName = grid.name;\n\nvar colWidths = {};\n\n// CHANGE HERE\ncolWidths[gridName] = {}; \n\n$.each(columns, function(c) {\n\n var col = columns[c];\n var colname = col.id;\n var colwidth = col.width;\n\n // CHANGE HERE\n var thisGrid = colWidths[gridName];\n if(!thisGrid[colname]) thisGrid[colname] = 0;\n\n thisGrid[colname] += colwidth;\n\n});\n\n//alert(colWidths.desktop.title);\xe2\x80\x8b\ndocument.write(JSON.stringify(colWidths));\n\n// RESULT:\n// {"desktop":{"icons":50,"title":200,"name":300,"revision":400}}\nRun Code Online (Sandbox Code Playgroud)\n