Javascript.RU

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

Как создать новый массив из массива внутри объекта?
Использую fullcalendar, которому для получения событий в календарь нужен массив. Сейчас я получаю объект flowJs, внутри которого есть нужный мне массив events. Вопрос: как выбрать этот массив в другую переменную или сделать на него ссылку.

Пример:
var flowJs = {
  "user": "admin",
  "active": true,
  "methodService": 1,
  "events": [
  {
    "title": "Alex Smith",
    "start": "2016-06-15",
    "end": "2016-06-15",
  },
  {
    "title": "John Smith",
    "start": "2016-06-16",
    "end": "2016-06-16",
  }]
}


Чтобы получить:
var events = [
  {
    "title": "Alex Smith",
    "start": "2016-06-15",
    "end": "2016-06-15",
  },
  {
    "title": "John Smith",
    "start": "2016-06-16",
    "end": "2016-06-16",
  }]

Спасибо больше за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2016, 13:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,361

Enkille,
var events = flowJs.events ;
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2016, 20:00
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Enkille, есть два способа:
var events = flowJs.events;
//или так:
var events = flowJs['events'];
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2016, 00:57
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

Подскажите пожалуйста правильный ли принцип запись данных в объект...
if(!(aJSON.data.Id in Data)){ // проверка наличия 
     Data[aJSON.data.Id] = {}; // новый {} для ID если его нет в Data
}
Data[aJSON.data.Id].name = aJSON.data.name;  
var ReTMP = [];
for(var d = 1; d < 5; d++){ // так надо... с "1" :)   
    ReTMP.push(Number(aJSON.data.prod[d]));     
    ReTMP.push(Math.round(aJSON.data.stor[d])); 
    ReTMP.push(Number(aJSON.data.cap[d]));      
}
Data[aJSON.data.Id].Re = ReTMP; // массив 13
addSum('Re', ReTMP);

function addSum(item, Data){
    if(!("total" in Data)){
          Data["total"] = {};
          Data["total"].name = "Всего";
    }
    for(var i = 1; i < 13; i ++){ // так надо... с "1" :)   
        itemDataSum[i] = itemDataSum[i] + Data[i];
    }
    Data.total[item] = itemDataSum; // исправил...
}

aJSON.data - объект, часть его данных надо переписать в объект Data

Вид объекта Data:
Data = {
         ID1: {
                   name: "Имя",
                   Re:  [1,4,65,2 ..... ]
                }
         ID2: { .... }
         ...............
         total: {
                   name: "Всего",
                   Re:  [1,4,65,2 ..... ]
                }
}

Что то данные по отдельности консоль выводит... а при записи в объект не пашет.

Последний раз редактировалось Benos, 14.07.2016 в 01:10.
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2016, 01:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,361

Benos,
в строке 22 ничего странного не видите, вы или консоль?
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2016, 01:06
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

забыл добавить...
aJSON.data.Id - число, возможно играет роль
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2016, 01:08
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

Сообщение от рони Посмотреть сообщение
Benos,
в строке 22 ничего странного не видите, вы или консоль?
виноват... это я тут ошибся... перебирал варианты...
изначально было так...
Data[total][item] = itemDataSum;
потом
Data.total[item] = itemDataSum;
Ответить с цитированием
  #8 (permalink)  
Старый 14.07.2016, 01:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,361

Benos,
если вопрос остался сделайте нормальный макет, чтобы не гадать что такое itemDataSum
Ответить с цитированием
  #9 (permalink)  
Старый 14.07.2016, 01:32
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

Кажись понял где косяк...
addSum('Re', ReTMP); //вызываю функцию с двумя параметрами


function addSum(item, Data){ // item = 'Re', ReTMP = Data

но это не та "Data"... которая объект... это массив ReTMP и в нем я пытаюсь найти ID и записать данные )

З.Ы. Общение с умными людьми... просветляет
Ответить с цитированием
  #10 (permalink)  
Старый 14.07.2016, 17:24
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

все таки косяк не нашел...
похоже что то в функции addSum криво...
собрал макет данных JSON ответа и функцию обработки...
все пашет, кроме суммирования...

Если есть возможность посмотрите пожл. кто-нибудь...
https://jsfiddle.net/Benos/3v95bjw5/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 06:33
Как получить доступ к функциям внутри $(document).ready ? oleg_barma jQuery 3 05.06.2012 20:56
как запихнуть в массив оператор ? mitiya Общие вопросы Javascript 2 09.02.2011 18:57
Как добраться до объекта внутри div#? Randomizer jQuery 8 24.09.2010 12:01
Как создать таймер, как на Letitbit? free_style Javascript под браузер 1 01.07.2010 17:55