Развернуть объект с массивом[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,
Вам как обычно, что угодно лишь бы не по теме. |
Часовой пояс GMT +3, время: 22:53. |