how to sort an array of objects using a related property from objects in second array

后端 未结 5 1005
有刺的猬
有刺的猬 2021-01-26 09:06

There are many questions regarding sorting with JavaScript but I didn\'t find anything that addresses this case so I don\'t believe this is a duplicate.

I\'m getting dat

5条回答
  •  花落未央
    2021-01-26 09:57

    See in demo: http://jsbin.com/qaquzi/1/edit?js,console

    //items array 
    var items = [{id:1, name:'bill'}, {id:2, name:'sam'}, {id:3, name: 'mary'}, {id:4, name:'jane'}]
    
    //sort order array
    var order = [{id:1, sortindex:4}, {id:2, sortindex:2}, {id:3, sortindex: 1}, {id:4, sortindex:3}]
    
    
    var sortedOrder = _.sortBy(order, 'sortindex');
    
    var bb = _.map(sortedOrder, function (i) {
        return i.id;
    })
    
    var sorted = [];
    
    for (var i = 0, ii = bb.length; i < ii; i++) {
        for (var m = 0, mm = items.length; m < mm; m++) {
            var a = items[m];
            if (a.id == bb[i]) {
                sorted.push(items[m]);
            }
        }
    }
    
    console.log(sorted);
    

提交回复
热议问题