Развернуть объект с массивом[n] в n-объектов с элементами массива в качестве свойства
Доброго дня! Есть ли красивое решение преобразовать
{
a: 1,
b: [
{c:11, d:22},
{c: 33, d:44}
]
}
в
[{
a: 1,
b: {c:11, d:22}
},
{
a: 1,
b: {c:33, d:44}
}]
? |
Цитата:
|
prog_f130,
var obj = {
a: 1,
b: [
{c:11, d:22},
{c: 33, d:44}
]
}
var arr = obj['b'].map(function(a) {
return {
a: 1,
b: a
}
})
alert(JSON.stringify(arr));
|
Ну мне, например, в голову приходит только что то вроде
var obj = {
a: 1,
b: [
{c:11, d:22},
{c: 33, d:44}
]
};
Object.defineProperty(obj , "b", {enumerable : false});
var objArray = [];
obj.b.forEach(function(b, bNo){
objArray.push(Object.assign({}, obj, b));
})
console.log(objArray);
Но насколько это ресурсозатратно, каждый раз так копировать объект, когда в нем скажем несколько десятков свойств, да и такой объект - результат выборки из БД, и они так же хранятся в массиве, вот и думаю, возможно есть что то по-прощею. |
Цитата:
|
рони,
А зачем map(function(a)? В целях конспирации? |
Dilettante_Pro,
да ![]() |
Цитата:
|
Цитата:
|
ksa,
Вам как обычно, что угодно лишь бы не по теме. |
prog_f130, ты спец - тебе видней...
|
| Часовой пояс GMT +3, время: 11:00. |