gpt4 book ai didi

Javascript 使用 json 中的值编写循环并将其嵌套数据作为 json 对象传递给循环

转载 作者:行者123 更新时间:2023-12-03 02:19:44 27 4
gpt4 key购买 nike

我在 myContactsUuids 数组中有一个用户 uuid 列表,使用 forEach() 方法循环遍历它们并添加使用 new ChatEngine 检索的用户。 User(uuid) 函数到 myContacts 数组。

myContactsUuids = ["john_doe_001", "john_doe_005"];
// set a global array of users
myContacts = {};

myContactsUuids.forEach(function(uuid) {

myContacts[uuid] = new ChatEngine.User(uuid);

});

现在尝试重写此代码以执行基本相同的操作,但在每个 uuid 下嵌套附加数据,并将其作为 JSON 对象传递,并将用户 uuid 作为 ChatEngine.User() 函数中的字符串传递。

我现在有这样的用户数据,尽管可以以任何方式格式化。

myContactsUuids = {"john_doe_001":{"username":"John Doe","avatar_url":"http://someurl"},"john_doe_003":{"username":"Another John Doe","avatar_url":"http://someurl"}};

ChatEngine.User(uuid,data) 函数,其中 uuid 是用户 uuid 字符串和数据 json 对象,例如循环中的用户如下所示:

new $scope.ChatEngine.User("john_doe_001", {"username":"John Doe","avatar_url":"http://someurl"});

只是不确定为此编写循环并将所需数据传递给它的最佳方法是什么,然后像简化函数中那样将检索到的用户添加到数组中。也许我可以使用 each() 做到这一点,但不确定如何正确。

@Ele 解决方案有效,只需要结果数组的格式如下:

{ "john_doe_001":{"uuid":"john_doe_001","data":{"username":"John Doe","avatar_url":"http://someurl"}},"john_doe_003":{"uuid":"john_doe_003","data":{"username":"Another John Doe","avatar_url":"http://someurl"}} }

最佳答案

您可以将函数Object.entries与函数map一起使用

var result = Object.entries(myContactsUuids)
.map(([uuid, data]) => ({ [uuid]: new $scope.ChatEngine.User(uuid, data) }));

示例片段:

var ChatEngine = {
User: function(uuid, data) {
this.uuid = uuid;
this.data = data;
}
}

var myContactsUuids = {"john_doe_001":{"username":"John Doe","avatar_url":"http://someurl"},"john_doe_003":{"username":"Another John Doe","avatar_url":"http://someurl"}};
var result = Object.entries(myContactsUuids)
.map(([uuid, data]) => ({ [uuid]: new ChatEngine.User(uuid, data) }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

使用函数reduce构建所需的输出:

{
"john_doe_1": {
"data": {"2": 1}
},
"john_doe_2": {
"data": {"a": 1}
}
}

var ChatEngine = {
User: function(uuid, data) {
this.uuid = uuid;
this.data = data;
}
}

var myContactsUuids = {"john_doe_001":{"username":"John Doe","avatar_url":"http://someurl"},"john_doe_003":{"username":"Another John Doe","avatar_url":"http://someurl"}},
result = Object.entries(myContactsUuids)
.reduce((a, [uuid, data]) => {
a[uuid] = new ChatEngine.User(uuid, data);
return a;
}, {});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于Javascript 使用 json 中的值编写循环并将其嵌套数据作为 json 对象传递给循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com