Цикл по массиву в React Native - PullRequest
0 голосов
/ 29 мая 2020

введите здесь описание изображения это мой входной массив (service_item_list) ...

for (var k = 0; k < service_item_list.length; k++) {
            for (var l = 0; l < service_item_list[k].length; l++) {
                service_item_list[k][l].service_id=this.state.selected_services[k].id
            }
        }



service_item_list=[[{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''}],[{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''}]]

this.state.selected_services=[{id:'5',event_id:'1'},{id:'6',event_id:'1'}]

... я продолжаю получать результат: ...

service_item_list=[[{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''}],[{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''}]]

... но мне нужен вывод: ...

 service_item_list=[[{event_id:'1',service_id:'5',product_id:''},{event_id:'1',service_id:'5',product_id:''},{event_id:'1',service_id:'5',product_id:''}],[{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''},{event_id:'1',service_id:'6',product_id:''}]]

... Я не могу найти, где ошибка ???

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете упростить задачу, используя метод карты массива JavaScript. Таким образом, подход будет таким:

const service_item_list=[[{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''}],[{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''},{event_id:'',service_id:'',product_id:''}]]

const selected_services=[{id:'5',event_id:'1'},{id:'6',event_id:'1'}]

const res = service_item_list.map((arr, outerIdx) => {
    return arr.map((obj) => {
        obj.service_id = selected_services[outerIdx].id
        return obj;
    })
})

console.log(res)

[
    [
        { event_id: '', service_id: '5', product_id: '' },
        { event_id: '', service_id: '5', product_id: '' },
        { event_id: '', service_id: '5', product_id: '' },
    ],
    [
        { event_id: '', service_id: '6', product_id: '' },
        { event_id: '', service_id: '6', product_id: '' },
        { event_id: '', service_id: '6', product_id: '' },
    ],
];

Значение, сохраненное в константе res, будет вашим результатом, как показано выше. Подробнее о JS методе карты массива здесь

...