【问题标题】:Looping over array in react native在本机反应中循环数组
【发布时间】:2020-09-16 17:11:24
【问题描述】:

enter image description here这些是我的输入数组(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:''}]]

... 我找不到错误在哪里???

【问题讨论】:

    标签: arrays react-native for-loop multidimensional-array iteration


    【解决方案1】:

    您可以使用 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数组映射方法here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2017-11-20
      • 2017-09-16
      相关资源
      最近更新 更多