javascript - 处理放置在对象内的数组串联的更好方法

标签 javascript arrays object

好吧,我需要进行一个数组串联,并将其放置在对象内。

所以我制定的有效解决方案是:

      const usersList = {
        tester: [{ id: 1, //... }, //...],
        custumers: [{ id: 1, //... }, //...],
        admin: [{ id: 1, //... }, //...]
      }

      let allUsers = []

      Object.keys(usersList).forEach(listKey => {
        allUsers = [
          ...allUsers,
          ...usersList[listKey]
        ]
      })

      return allUsers

此外,我想知道是否有一种更时尚的方式来处理这种情况?我尝试了这个,但不起作用:

[...Object.keys(usersList).map(listKey => usersList[listKey])]

最佳答案

获取对象的值,这将为您提供一个数组数组,然后展平:

const allUsers = Object.values(usersList).flat();

如果您无法使用.flat,则:

const allUsers = [].concat.apply(...Object.values(usersList));

关于javascript - 处理放置在对象内的数组串联的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60825781/

相关文章:

javascript - 计数对象内的数组并替换

javascript - Object.Assign 不创建新实例

javascript - 滚动时如何更改 div 上的标题?

javascript - 在html的选择元素中选择后更改所选值的字体大小

javascript - 使用 Google Places API 分页可获得 20 多个结果

c++ - 如果元素的数量已知,检查数组或 vector 中的所有元素是否相等更好吗?

c# - 获取当月的星期一到星期六

c++ - 为什么要在堆中创建全局对象?

javascript - 未捕获的 TypeError : $(. ..).velocity 不是一个函数

c++ - 为什么使用 std::sort() ) 给我垃圾值?