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 11.07.2018 15:05

как заполнить объект через цикл с присвоением переменной значению
 
Не могу сообразить. Нужно перебором свойств или есть и другие способы?
Подскажите примеры

рони 11.07.2018 15:17

:-? может макет минимальнный?

j0hnik 11.07.2018 15:17

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


если добавить новые, то простым циклом

Tungusv 12.07.2018 07:11

//

Tungusv 12.07.2018 07:18

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

Циклом нужно всем значениям присвоить переменные.

Rise 12.07.2018 08:11

Tungusv,
Что за язык, откуда структура в js? Перевернули всё с ног на голову, переменным присваиваются значения.

Rise 12.07.2018 08:33

В общем это похоже на массив объектов
function Person(Id, Name, ShortName, ParentID, Login) {
    this.Id = Id;
    this.Name = Name;
    this.ShortName = ShortName;
    this.ParentID = ParentID;
    this.Login = Login;
}

var struct = [];
    struct.push(new Person("1", "name1", "shortname1", "11", "login1"));
    struct.push(new Person("2", "name2", "shortname2", "22", "login2"));

console.log(struct);

Tungusv 12.07.2018 08:42

Вот что получилось. Верно так?
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);
}

Rise 12.07.2018 08:56

Вам надо list в kusts скопировать? Определенные свойства или все? Определенные:
for (let i = 0; i < list.length; i++) {
    kusts[i] = {
        Id: list[i]['Id'],
        Name: list[i]['Name'],
        ShortName: list[i]['ShortName'],
        ParentID: list[i]['ParentID'],
        Login: list[i]['Login']
    };
}

Все:
for (let i = 0; i < list.length; i++) {
    for (let k in list[i]) {
        kusts[i][k] = list[i][k];
    }
}

Даже проще так наверно)
for (let i = 0; i < list.length; i++) {
    kusts[i] = list[i];
}

Rise 12.07.2018 09:19

Хм... время на сервере форума отстает на минут 7...


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