Я изучаю Lodash, который является библиотекой javascript.lodash: создать массив на основе дочернего массива объекта
Здесь я имею объект как:
Сценарий № 1:
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't1'
},
{
time: '<any-time>',
t: 't2'
},
{
time: '<any-time>',
t: 't3'
}
]
}
Я хочу, чтобы этот результат с помощью lodash:
[
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't1'
}
]
},
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't2'
}
]
},
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't3'
}
]
}
]
Сценарий № 2:
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't1'
},
{
time: '<any-time>',
t: 't1' // see here t1 repeated
},
{
time: '<any-time>',
t: 't3'
}
]
}
, то результат должен быть:
[
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't1'
},
{
time: '<any-time>',
t: 't1'
}
]
},
{
name: 'abc'
email: '[email protected]'
z: [
{
time: '<any-time>',
t: 't3'
}
]
}
]
Позвольте мне знать, если мои детали не растаможен к вам.
спасибо :)
EDIT: Я попытался следующий код,
var finalArr = [];
var baseInfo = _.omit(obj, 'z');
var childArr = obj.z;
for(var j = 0; j < childArr.length; j++){
var flattenObj = angular.copy(baseInfo);
flattenObj.z = [];
flattenObj.z.push(childArr[j]);
finalArr.push(flattenObj);
}
Он просто обрабатывает сценарий # 1. И я думаю, что он использует больше javascript, чем lodash.
@ user2415266 проверки мое редактирование –