как заполнить объект через цикл с присвоением переменной значению
Не могу сообразить. Нужно перебором свойств или есть и другие способы?
Подскажите примеры |
:-? может макет минимальнный?
|
если изменить существующие то так
var obj = { a: 0, b: 0, c: 0 };
for(prop in obj){
obj[prop] = 1;
}
console.log(obj);
если добавить новые, то простым циклом |
//
|
Есть структура:
struct: 0: Id: "1" Name: "name1" ShortName: "shortname1" ParentID: "11" Login: "login1" 1: Id: "2" Name: "name2" ShortName: "shortname2" ParentID: "22" Login: "login2" Циклом нужно всем значениям присвоить переменные. |
Вот что получилось. Верно так?
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); } |
Все свойства из list перенести в kusts и чтоб этим свойствам переменные назначить.
|
:-?
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, чтобы в древнем браузере работало (я про spread operator, и не только =>...) надо через browserify пропустить :)
|
Ещё как вариант
<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, время: 01:17. |