break array of objects into separate arrays based on a property

后端 未结 7 1175
太阳男子
太阳男子 2020-12-01 07:10

Say I have an array like this:

var arr = [
    {type:\"orange\", title:\"First\"},
    {type:\"orange\", title:\"Second\"},
    {type:\"banana\", title:\"Thi         


        
7条回答
  •  醉酒成梦
    2020-12-01 07:47

    This assumes an array of objects:

    function groupBy(array, property) {
        var hash = {};
        for (var i = 0; i < array.length; i++) {
            if (!hash[array[i][property]]) hash[array[i][property]] = [];
            hash[array[i][property]].push(array[i]);
        }
        return hash;
    }
    
    groupBy(arr,'type')  // Object {orange: Array[2], banana: Array[2]}
    groupBy(arr,'title') // Object {First: Array[1], Second: Array[1], Third: Array[1], Fourth: Array[1]}
    

提交回复
热议问题