Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как заполнить объект через цикл с присвоением переменной значению (https://javascript.ru/forum/misc/74435-kak-zapolnit-obekt-cherez-cikl-s-prisvoeniem-peremennojj-znacheniyu.html)

Tungusv 12.07.2018 11:17

Все свойства из list перенести в kusts и чтоб этим свойствам переменные назначить.

рони 12.07.2018 11:39

:-?
for (let i = 0; i < list.length; i++) kusts[i] = {...list[i]}

SuperZen 12.07.2018 13:07

Цитата:

Сообщение от 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>

Rise 12.07.2018 17:30

Tungusv,
сами свойства это переменные и есть, зачем еще переменные переменных?

рони,
совсем новое :) а я понять не мог как так что это... Что то не понял как так, в прошлом месяце приняли, а в браузере уже работает? О как прогресс чего достиг, молодцы работают на опережение :D Так! В Firefox не пашет, надо обновиться...

SuperZen,
JSON.parse(JSON.stringify(list)) это что за фокус? Ааа, типа копия, понял :)

SuperZen 13.07.2018 15:17

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

Ermite 15.07.2018 21:36

Ещё как вариант
<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] = Object.assign({}, list[i]);
  }
  kusts[0].Id = 3;
  alert(`${kusts[0].Id}, ${list[0].Id}`);
</script>


Часовой пояс GMT +3, время: 07:08.