Как правильно создать объект

194
19 сентября 2017, 09:37

Суть: Пользователь на сайте в форме заполняет данные, примерно такой вид данных на выходе - idUser, date1, date2 (причем он может внести несколько строк, с разными датами но idUser будет одинаковый соответственно).

Вопрос: Подскажите как мне создать объект и в цикле его наполнять этими данными, примерно как с массивом с помощью push ? (Хотелось бы, в дальнейшем из этого объекта вытягивать данные только по idUser например с помощью $.map)

Update: Хочу примерно такую структуру: var Data = { id : { n: [] } } - объект создаем

после заполнения данными:

var Data = {
  id1 : { 1:[ date1, date2 ], 2:[ date1, date2 ] },
  id2 : { 1:[ date1, date2 ], 2:[ date1, date2 ], 3:[ date1, date2 ] }
....  
}
Answer 1

думаю вам подойдет следующая структура :

{
  "1": [
    {
      "date1": "12.02.2017",
      "date2": "12.022015"
    },
    {
      "date1": "12.04.2017",
      "date2": "12.05.2015"
    }
  ],
  "2": [
    {
      "date1": "11.04.2017",
      "date2": "01.05.2015"
    }
  ]
}

Где обьект местит в себе свойства, которые равны вашим id, а уже ети свойства являються массивами обьектов, хранящих даты, вот пример реализации :

document.addEventListener('DOMContentLoaded', doIt); 
 
var someObj = {}; 
 
function doIt() { 
  document.querySelector('#add').addEventListener('click', function() { 
    var id = document.querySelector('[name="id"]').value; 
    var _date1 = document.querySelector('[name="date1"]').value; 
    var _date2 = document.querySelector('[name="date2"]').value; 
 
    // если свойство обьекта someObj с именем id не существует 
    // создаем его и присваеваем ему пустой массив 
    if (someObj[id] === undefined) { 
      someObj[id] = []; 
    } 
 
    // тут пробегаем по массиву, смотрим есть ли уже такой елемент 
    // если есть то не добавляем (эт от себя добавил) 
    var add = true; 
    if (someObj[id].length > 0) { 
      someObj[id].forEach(function(e) { 
        if (e.date1 == _date1 && e.date2 == _date2) { 
          add = false; 
        } 
      }); 
    } 
 
    // пушим наши даты в наш ид  
    if (add) 
      someObj[id].push({ 
        date1: _date1, 
        date2: _date2 
      }); 
 
  }); 
 
  document.querySelector('#print').addEventListener('click', function() { 
    console.log(someObj); 
  }); 
};
ID:<input name="id" /><br/> Date: 
<input name="date1" /><br/> Date2: 
<input name="date2" /><br/> 
<button id="add">add to object</button><br/> 
<button id="print">print object in console</button> 
<br/> 
<div id="data"></div>

READ ALSO
Неверно работает onclick

Неверно работает onclick

Использую библиотеку higslide, хочу сделать галереюПри клике на изображение оно должно увеличиваться, но скрипт просто открывает изображение...

340
Google map api, как закрасить регион или область?

Google map api, как закрасить регион или область?

Подскажите,предусмотрено ли в google maps api возможность закраски каким-то своим цветом региона(области), скажем я хочу отметить регионы в которых...

223
PHP отправка писем на @mail

PHP отправка писем на @mail

Столкнулся с проблемой отправки писемПочитал разные статейки, в основном у людей проблема самой отправки и что-то в этом деле

166