简体   繁体   English

在本机反应中循环数组

[英]Looping over array in react native

enter image description here these is my input array(service_item_list)...在此处输入图像描述这些是我的输入数组(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'}]

... i keep getting the output: ... ...我不断收到 output:...

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:''}]]

... but i need the output: ... ...但我需要 output:...

 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:''}]]

... I'm not able to find where the error is??? ...我找不到错误在哪里???

You can make things easier using JavaScript array map method.您可以使用 JavaScript 数组 map 方法使事情变得更容易。 So the approach will be like this:所以方法是这样的:

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: '' },
    ],
];

The value stored in the res constant will be your result as shown above.存储在 res 常量中的值将是您的结果,如上所示。 More on JS array map method here更多关于 JS 数组 map 方法的信息在这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM