我正在尝试创建一个内部具有多个密钥对值的对象。
我使用的值将来自API,并且我试图将响应转换为单个对象。
我的代码:
json_users.forEach(function (user){
var user_name = user.name;
var object_user = {user_name: null};
temp_collection.push(object_user);
})
我想要的结果
{"key_1":val_1, "key_2", val_2}
我得到的结果
[{
0: {
.....
},
1: {
.....
}
}]
答案 0 :(得分:3)
var resultObject = {};
json_users.forEach(function (user, index){
var user_name = user.name;
var object_user = {user_name: null};
resultObject["key" + (index + 1)] = object_user;
});
resultObject将是您所需要的。您可以使用user.id或类似的方法代替“键” +(索引+ 1)。这样,您将拥有一个用户字典,其中键将是ID,值将是用户对象
答案 1 :(得分:2)
您不应该使用.push()
-这是在创建数组。尝试以下方法:
var temp_collection = {};
json_users.forEach((user, index) => temp_collection[`key_${index}`] = user.name);
此操作遍历数组json_user
,并使用数组中每个对象的temp_collection
属性向name
对象添加新属性。
尽管上面的确使用了ES6箭头和模板文字,所以这是一个更广泛接受的版本:
json_users.forEach(function(user, index) {
temp_collection["key_" + index] = user.name;
})