Добавить переменную в строку массива - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь получить данные из бэк-офиса и проверить, существуют ли они в другой таблице, поэтому я добавляю значение, называемое «проверка», для каждой строки массива, которая содержит результат проверки. проблема в том, что каждый раз, когда он добавляет значение в другую строку в массиве, но я хочу добавить его в строку

Детали:

testobj() {
    for (var i = 0; i < this.listObj.length; i++) {
        console.log(this.listObj[i].id_obj_ser);
        this.etudiant.getobjectifvalidation(this.listObj[i].id_obj_ser, this.cin).subscribe((data: any) => {
            if (data.length != 0) {
                console.log(data);
                console.log('i = ' + i);
                this.listObj[i].push({'validation': data[i-1].validation});
                console.log(this.listObj[i]);
            }
        });
        }
        console.log(this.listObj);
}

listObj: массив уже готов

this.listObj [i] .push: это новое значение, которое я хочу добавить в строку, а не в массив.

1 Ответ

0 голосов
/ 02 мая 2018

Вместо нажатия на объект (элемент в пределах this.listObj), вы можете просто добавить новое поле, выполнив

this.listObj[i].field_name = value

NB : push () для массивов , а не объектов ,

Проверьте приведенный ниже пример кода и проверьте вашу консоль

var listObject = [
{id: 1, name:'item name'},
{id: 2, name: 'item name2'},
{id: 3, name: 'item name 3'}
]

console.log('original object', listObject)

for(var i=0; i<listObject.length; i++){

// i can manipulate each item here
// if the item is even validate should be true
listObject[i].validate = true
}

console.log('new object', listObject)

Проверьте консоль и посмотрите, как предметы были изменены для объектов

...