console
var list1 = [];
var list2 = [];
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
for (var i=0;i<100000;i++){
list1.push({"rid":3+i, gold:getRandom(500, 20000), diamond:getRandom(50, 200)});
list2.push({"rid":3+i, gold:getRandom(500, 20000), diamond:getRandom(50, 200)});
}
var obj2 = _.groupBy(list2, "rid");
_.forEach(list1, function(item){
var foundItem = obj2[item.rid];
var diff = item.gold - foundItem[0]['gold'];
item.diff = diff;
})
list1 = _(list1)
.orderBy('diff')
.take(100)
.value();
$("#output").html(JSON.stringify(list1));
<div id="output"></div>