Javascript 如何根据下划线js中的键和值对进行分组
我试图弄清楚如何使用下划线js对这个数组进行分组。请帮我解决这个问题Javascript 如何根据下划线js中的键和值对进行分组,javascript,underscore.js,Javascript,Underscore.js,我试图弄清楚如何使用下划线js对这个数组进行分组。请帮我解决这个问题 var result = [ { phone_number: '777', type: 'ORDER_SMS' }, { phone_number: '777', type: 'ORDER_CALL' }, { phone_number: '999', type: 'ORDER_SMS' } ]; //expected output var result = [ {'ORDER_SMS'
var result = [
{ phone_number: '777', type: 'ORDER_SMS' },
{ phone_number: '777', type: 'ORDER_CALL' },
{ phone_number: '999', type: 'ORDER_SMS' }
];
//expected output
var result = [
{'ORDER_SMS' : '777, 999'},
{'ORDER_CALL': '777' }
];
你可以用很多方法来做,这只是其中之一
var grouped = _.groupBy(result, function(obj) {
return obj.type;
});
result = _.keys(grouped).map(function(key) {
var newObj = {};
newObj[key] = _.pluck(grouped[key], 'phone_number').join(' ');
return newObj
});
1.使用下划线
var list = [{
phone_number: '777',
type: 'ORDER_SMS'
}, {
phone_number: '777',
type: 'ORDER_CALL'
}, {
phone_number: '999',
type: 'ORDER_SMS'
}];
var result = _.chain(list)
.groupBy('type')
.map(function(value, key) {
// console.log(value)
return {
type: key,
phone_numbers: _.pluck(value, 'phone_number')
}
})
.value();
console.log('result', result)
2.使用纯JS
var origArr=[{
电话号码:“777”,
键入:“订单\短信”
}, {
电话号码:“777”,
键入:“订单电话”
}, {
电话号码:“999”,
键入:“订单\短信”
}];
功能分组依据(arr,键){
var newArr=[],
类型={},
新项目,i,j,cur;
对于(i=0,j=arr.length;i log(groupBy(origArr,'type')代码>查看使用groupBy,然后映射组以提取电话号码。