如何创建单个对象并在其中推送多个密钥对值?

时间:2019-01-06 01:58:22

标签: javascript jquery arrays json object

我正在尝试创建一个内部具有多个密钥对值的对象。

我使用的值将来自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: {
        .....
    }
}]

2 个答案:

答案 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;
})