【发布时间】:2012-05-08 09:23:17
【问题描述】:
我在循环、对象方面遇到了一些问题
我有这样的json;
var jsonPermission = {"permissions": [
{"permissionId": 1, "permissionName": "Admin Permission", "roleDesc": "This is an Admin Permission"},
{"permissionId": 2, "permissionName": "Manager Permission", "roleDesc": "This is a Manager Permission"},
{"permissionId": 3, "permissionName": "User Permission", "roleDesc": "This is a user Permission"}
]
};
我必须制作这样的对象;
[
{ data: "Admin Permission", type: ["permission"] },
{ data: "Manager Permission", type: ["permission"] },
{ data: "User Permission", type: ["permission"] }
]
所以我使用了以下代码;
//For Permissions
var permissions_len = jsonPermission.permissions.length;
var arr_permissions = [];
var permission_type = ["permission"];
for(var i=0;i<permissions_len;i++){
var obj_permissions = {};
obj_permissions["data"] = jsonPermission.permissions[i].permissionName;
obj_permissions["type"] = permission_type;
arr_permissions.push(obj_permissions);
}
但是我却变成了这样:
[
{ data: "Admin Permission", type: [1] },
{ data: "Manager Permission", type: [1] },
{ data: "User Permission", type: [1] }
]
如何执行?
【问题讨论】:
-
就像一个注释,因为我无法在您的代码中发现一个明显的错误:您正在为所有
type-definitions 分配相同的数组对象。因此,如果您更改此数组,例如,通过附加一个元素,此更改将影响 alltype属性。我认为为每个条目创建一个单独的数组会更好。
标签: javascript object for-loop