gpt4 book ai didi

node.js - 嵌套的 Lodash ForEach

转载 作者:行者123 更新时间:2023-12-04 18:30:15 25 4
gpt4 key购买 nike

我有一个相当深的内存数据库,我想,我已经找到了代码的最佳实现,如果有人有更好的方法在 lodash 中执行双 forEach 循环,或者如果我以某种方式错误地使用它,我会很高兴知道。

对象:

smallDB = {
user1:{
permissions:[],
locations:[
{ip:'0.0.0.0',messages:[]},
{ip:'',messages:[]}
]
},
user2:{
permissions:[],
locations:[
{ip:'0.0.0.0',messages:[]},
{ip:'0.0.1.0',messages:[{mid:'a unique id','user':'the sender',message:'the text of the message'}]}
]
}
}

我使用的发送消息:

ld.forEach smallDB, (a)->
ld.forEach a.locations, (b)->
b.messages.push {mid,user,message}

我只是想确保这是将消息添加到 smallDB 及其所有位置的所有用户的迷你数据库中的最佳方式

最佳答案

如果您使用 {mid,user,message} 创建的对象是不可变的您可以进行一项非常简单的优化:

record = {mid,user,message}
ld.forEach smallDB, (a)->
ld.forEach a.locations, (b)->
b.messages.push record

如果这样做,您就可以节省每次推送时创建新对象的成本。放弃 forEach 以使用 for 也会让事情变得更快。

通过允许更直接地访问您在原始代码中作为 b.messages 访问的数组,可以进一步优化它,但这会使用户或位置的添加和删除变得复杂。我认为不值得这样做,除非通过分析证明它不是过早的优化。

关于node.js - 嵌套的 Lodash ForEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532912/

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