Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2017, 10:35
Интересующийся
Отправить личное сообщение для prog_f130 Посмотреть профиль Найти все сообщения от prog_f130
 
Регистрация: 24.08.2016
Сообщений: 20

Развернуть объект с массивом[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}
}]

?
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2017, 10:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от prog_f130
красивое решение
Какие критерии у той красоты?
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2017, 11:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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));
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2017, 11:18
Интересующийся
Отправить личное сообщение для prog_f130 Посмотреть профиль Найти все сообщения от prog_f130
 
Регистрация: 24.08.2016
Сообщений: 20

Ну мне, например, в голову приходит только что то вроде
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);

Но насколько это ресурсозатратно, каждый раз так копировать объект, когда в нем скажем несколько десятков свойств, да и такой объект - результат выборки из БД, и они так же хранятся в массиве, вот и думаю, возможно есть что то по-прощею.
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2017, 11:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от prog_f130
такой объект - результат выборки из БД
Может гораздо красивее будет переделать ту выборку...
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2017, 12:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони,
А зачем map(function(a)? В целях конспирации?
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2017, 12:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Dilettante_Pro,
да
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2017, 13:25
Интересующийся
Отправить личное сообщение для prog_f130 Посмотреть профиль Найти все сообщения от prog_f130
 
Регистрация: 24.08.2016
Сообщений: 20

Сообщение от ksa Посмотреть сообщение
Может гораздо красивее будет переделать ту выборку...
Как вы представляете себе такую выборку из базы mongoDB?
Ответить с цитированием
  #9 (permalink)  
Старый 15.02.2017, 14:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от prog_f130
Как вы представляете себе такую выборку из базы mongoDB?
Зачем мне ее представлять? Я с этой БД не работаю...
Ответить с цитированием
  #10 (permalink)  
Старый 15.02.2017, 14:41
Интересующийся
Отправить личное сообщение для prog_f130 Посмотреть профиль Найти все сообщения от prog_f130
 
Регистрация: 24.08.2016
Сообщений: 20

ksa,
Вам как обычно, что угодно лишь бы не по теме.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при переборе массива объектов ilya111 Общие вопросы Javascript 2 05.07.2016 14:50
Конструктор массива объектов и работа с ними через localStorage pepel266 Общие вопросы Javascript 16 04.11.2015 18:30
Проблема с наполнением массива объектов - последний элемент заменяет собой все... Джангар AJAX и COMET 5 18.12.2014 22:54
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10