我目前有一个类似于下面数组的数组:
[
{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/