Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2018, 15:05
Интересующийся
Отправить личное сообщение для Tungusv Посмотреть профиль Найти все сообщения от Tungusv
 
Регистрация: 02.11.2017
Сообщений: 26

как заполнить объект через цикл с присвоением переменной значению
Не могу сообразить. Нужно перебором свойств или есть и другие способы?
Подскажите примеры
Ответить с цитированием
  #2 (permalink)  
Старый 11.07.2018, 15:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

может макет минимальнный?
Ответить с цитированием
  #3 (permalink)  
Старый 11.07.2018, 15:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

если изменить существующие то так
var obj = { a: 0, b: 0, c: 0 };
for(prop in obj){
	obj[prop] = 1;
}
console.log(obj);


если добавить новые, то простым циклом
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2018, 07:11
Интересующийся
Отправить личное сообщение для Tungusv Посмотреть профиль Найти все сообщения от Tungusv
 
Регистрация: 02.11.2017
Сообщений: 26

//
Ответить с цитированием
  #5 (permalink)  
Старый 12.07.2018, 07:18
Интересующийся
Отправить личное сообщение для Tungusv Посмотреть профиль Найти все сообщения от Tungusv
 
Регистрация: 02.11.2017
Сообщений: 26

Есть структура:
struct:
0:
Id: "1"
Name: "name1"
ShortName: "shortname1"
ParentID: "11"
Login: "login1"
1:
Id: "2"
Name: "name2"
ShortName: "shortname2"
ParentID: "22"
Login: "login2"

Циклом нужно всем значениям присвоить переменные.
Ответить с цитированием
  #6 (permalink)  
Старый 12.07.2018, 08:42
Интересующийся
Отправить личное сообщение для Tungusv Посмотреть профиль Найти все сообщения от Tungusv
 
Регистрация: 02.11.2017
Сообщений: 26

Вот что получилось. Верно так?
for (let i = 0; i < list.length; i++) {

item[i] = {
id: item[i]['Id'],
name : item[i]['Name'],
shortName : item[i]['ShortName'],
parentId : item[i]['ID'],
login : item[i]['login']
}


kusts.push(item);
}
Ответить с цитированием
  #7 (permalink)  
Старый 12.07.2018, 11:17
Интересующийся
Отправить личное сообщение для Tungusv Посмотреть профиль Найти все сообщения от Tungusv
 
Регистрация: 02.11.2017
Сообщений: 26

Все свойства из list перенести в kusts и чтоб этим свойствам переменные назначить.
Ответить с цитированием
  #8 (permalink)  
Старый 12.07.2018, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109


for (let i = 0; i < list.length; i++) kusts[i] = {...list[i]}
Ответить с цитированием
  #9 (permalink)  
Старый 12.07.2018, 13:07
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Сообщение от Rise
Даже проще так наверно)
for (let i = 0; i < list.length; i++) {
    kusts[i] = list[i];
}
так будет скопирована ссылка и если кустс править, то лист тоже поменяется, и наоборот...

<script>
  var list = [
    { 
      Id: 1,
      Name: "name1",
      ShortName: "shortname1",
      ParentID: 11,
      Login: "login1"
    },
    {
      Id: 2,
      Name: "name2",
      ShortName: "shortname2",
      ParentID: 22,
      Login: "login2"
    }
  ]
  var kusts = []
  for (let i = 0; i < list.length; i++) {
    kusts[i] = list[i];
  }
  console.log(kusts);
  kusts[0].Id = 3
  console.log(list)
</script>


Копия:

<script>
  var newO = JSON.parse(JSON.stringify(list))
  for (i in newO) {
    newO[i].Name = 'some new name'
    //n.ShortName = 'some new shortname'
  }
  console.log(newO)
</script>
Ответить с цитированием
  #10 (permalink)  
Старый 13.07.2018, 15:17
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Rise, чтобы в древнем браузере работало (я про spread operator, и не только =>...) надо через browserify пропустить
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выводить часть элементов страницы через javascript Victim Events/DOM/Window 9 28.12.2011 22:51
как отправить файл через XMLHttpRequest как мультипарт KOLANICH Общие вопросы Javascript 17 14.12.2010 19:02
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
Как получить объект getElementById через this Polkan Events/DOM/Window 7 24.06.2010 18:00
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25