javascript - 如何使用 javascript 通过对象属性将数组拆分为数组?

标签 javascript arrays underscore.js

我目前有一个类似于下面数组的数组:

[
      {id:1,color:'red'},
      {id:2,color:'blue'},
      {id:3,color:'red'},
      {id:4,color:'green'},
      {id:5,color:'blue'},
]

我正在寻找最快的方法来获得类似下面的内容,我可以通过对象中的属性对数组进行拆分/排序,在本例中它将是“颜色”:

[
      [
        {id:1,color:'red'},
        {id:3,color:'red'},
      ],[
        {id:2,color:'blue'},
        {id:5,color:'blue'},
      ],[
        {id:4,color:'green'},
    ]
]

我可以为此编写一个函数,但我想可能在 underscore.js 中已经有一些东西可以做到这一点,但没能找到它。

最佳答案

你需要使用下划线的groupBy函数你可以在文档中找到它对here .

groupBy_.groupBy(list, iterator, [context])
Splits a collection into sets, grouped by the result of running each value through iterator. If iterator is a string instead of a function, groups by the property named by iterator on each of the values.

[
      {id:1,color:'red'},
      {id:2,color:'blue'},
      {id:3,color:'red'},
      {id:4,color:'green'},
      {id:5,color:'blue'},
]

_.groupBy(a, function(x){ return x.color; });

关于javascript - 如何使用 javascript 通过对象属性将数组拆分为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23816091/

相关文章:

javascript - 我应该如何在不向用户显示的情况下使用 Electron 呈现网页?

javascript - "multipart != application/json"在 android 上获取 post 错误(react-native)

javascript - 如何在 react 渲染功能中创建动态 href?

javascript - 更新传入组件的样式 - ReactJS

c# - 通过c#将整数数组传递给oracle过程

javascript - 覆盖 Backbone.js 比较器

python - 从 OpenCV 返回的某个 numpy 数组中获取元素?

javascript - 如何在 JavaScript 中对数组进行 switch() ?

node.js - 如何在 Lodash 中遍历数组中的对象

javascript - Underscore.js - 在嵌套的 Json 中过滤