У меня есть объект Array, и в этом объекте Array я хочу фильтровать данные, группировать данные по определенному ключу и объект Array.
var data = [{
'value': [{
'id': '1',
'list': [
{ 'name': 'test', 'mapp_id': 1 },
{ 'name': 'test1', 'mapp_id': 1 },
{ 'name': 'test2', 'mapp_id': 1 },
{ 'name': 'test3', 'mapp_id': 2 }
]
}, {
'id': '2',
'list': [
{ 'name': 'test4', 'mapp_id': 2 },
{ 'name': 'test5', 'mapp_id': 2 },
{ 'name': 'test6', 'mapp_id': 2 },
{ 'name': 'test7', 'mapp_id': 1 }
]
}
]
},{
'value': [{
'id': '3',
'list': [
{ 'name': 'test8', 'mapp_id': 3 },
{ 'name': 'test9', 'mapp_id': 3 },
{ 'name': 'test10', 'mapp_id': 1 },
{ 'name': 'test11', 'mapp_id': 1 }
]
}, {
'id': '4',
'list': [
{ 'name': 'test12', 'mapp_id': 1 },
{ 'name': 'test13', 'mapp_id': 1 },
{ 'name': 'test14', 'mapp_id': 2 },
{ 'name': 'test14', 'mapp_id': 2 }
]
}
]
}]
я хочу, чтобы данные были похожи, а какой-то код пытался, но нетполный успех, некоторый успех.
var output = {
'1': [
{ 'name': 'test', 'mapp_id': 1 ,'id': '1'},
{ 'name': 'test1', 'mapp_id': 1 ,'id': '1'},
{ 'name': 'test2', 'mapp_id': 1 ,'id': '1'},
{ 'name': 'test7', 'mapp_id': 1 ,'id': '2'},
{ 'name': 'test10', 'mapp_id': 1, 'id': '3' },
{ 'name': 'test11', 'mapp_id': 1, 'id': '3' },
{ 'name': 'test12', 'mapp_id': 1,'id': '4' },
{ 'name': 'test13', 'mapp_id': 1 ,'id': '4'}
],
'2': [
{ 'name': 'test3', 'mapp_id': 2 ,'id': '1'},
{ 'name': 'test4', 'mapp_id': 2,'id': '2' },
{ 'name': 'test5', 'mapp_id': 2 ,'id': '2'},
{ 'name': 'test6', 'mapp_id': 2,'id': '2' },
{ 'name': 'test14', 'mapp_id': 2 ,'id': '4'},
{ 'name': 'test14', 'mapp_id': 2 ,'id': '4'}
],
'3':[
{ 'name': 'test8', 'mapp_id': 3 ,'id': '4'},
{ 'name': 'test9', 'mapp_id': 3 ,'id': '4'}
]
};
Библиотека lodash, использованная в ее документации, ссылается на https://lodash.com/docs/4.17.10
Я могу попробовать некоторый код и этот код после удара, но без полного успеха.
var result= _.flatMap(data, item =>
_(item.value)
.flatMap('list')
.value()
);
result=_.groupBy(result, function(b) { return b.mapp_id})
и мой код опубликован
output = {
'1': [
{ 'name': 'test', 'mapp_id': 1 },
{ 'name': 'test1', 'mapp_id': 1 },
{ 'name': 'test2', 'mapp_id': 1 },
{ 'name': 'test7', 'mapp_id': 1 },
{ 'name': 'test10', 'mapp_id': 1 },
{ 'name': 'test11', 'mapp_id': 1 },
{ 'name': 'test12', 'mapp_id': 1 },
{ 'name': 'test13', 'mapp_id': 1 }
],
'2': [
{ 'name': 'test3', 'mapp_id': 2 },
{ 'name': 'test4', 'mapp_id': 2 },
{ 'name': 'test5', 'mapp_id': 2 },
{ 'name': 'test6', 'mapp_id': 2 },
{ 'name': 'test14', 'mapp_id': 2 },
{ 'name': 'test14', 'mapp_id': 2 }
],
'3':[
{ 'name': 'test8', 'mapp_id': 3 },
{ 'name': 'test9', 'mapp_id': 3 }
]
};
помогите мне, ребята, как я могу это сделать?