首页 > 解决方案 > 如何遍历另一个列表中的列表 - json + js

问题描述

我正在尝试遍历另一个列表中的列表,这是我的数据:

(3) [{...}, {...}, {...}] 0: {id: 9, check_in: '2021-10-02T15:58:00', check_out: '2021-10-05T10:17', 访客: Array(4)} 1: {id: 10, check_in: '2021-10-06T21:12:00', check_out: '2021-10-09T15:00', 访客: Array(4)} 2: {id : 11, check_in: '2021-10-27T21:34:00', check_out: '2021-10-29T21:34', 访客: Array(4)} 长度: 3

我的访问者数组如下所示:

访客:数组(4)0:{full_name:'name1'} 1:{full_name:'name2'}长度:2

等等 ,

这是我的 js 代码与 html

        $.ajax({        
        url:'my_url',
        type:'json',
        method:'GET',
        success:function(data){
            let booking = data.lists
            let visitors = data.lists.visitors
            console.log(visitors)                        
            let content='';           
                for(j=0; j< booking.visitors;j++){
                    
                    console.log(j)

                }                 
                    for(i=0;i<booking.length;i++){
                        content+='<div class="border border-purple-900 rounded-xl p-1 text-sm  text-center">';
                            content+='<p>'+booking[i]['visitors']['full_name']['full_name']+'</p>';
                        content+='</div>';

                        content+='<div class="mt-1">';
                        let check_in= new Date(booking[i]["check_in"]).toLocaleDateString([], {
                            day: '2-digit',month: '2-digit',year: 'numeric' ,hour: '2-digit', minute:'2-digit'});  
                        if(booking[i]['check_out']){
                            check_out = new Date(booking[i]['check_out']).toLocaleDateString([], {
                                day: '2-digit',month: '2-digit',year: 'numeric' ,hour: '2-digit', minute:'2-digit'});
        
                        }else{
                            check_out = 'not mentioned'
                        }                        
                        content+='<p>'+check_in+' to ' +check_out+ '</p>'
                        content+='</div>'

                    }
                
            content+='</div>'

        $("#current-booking").html(content);

    }});

console.log(visitors) 返回未定义!,现在我不知道如何从 ajax 返回全名列表?请问我有什么需要改变的吗?

这是我的views.py

current_booking = Booking.objects.filter(leave=False,room_no__room_no=room_no)  
visitors_booking = BookingVisitor.objects.filter(booking__room_no__room_no=room_no,booking__leave=False)

lists = []
visitors = []
for j in visitors_booking:
    visitors.append({
    'full_name':j.visitor.full_name
    })

for i in current_booking:
    obj = {
        'id':i.pk,
        'check_in':i.check_in,
        'check_out':check_out,
        'visitors':visitors
    }
    lists.append(obj)

return JsonResponse({'success':True,'lists':lists})

提前致谢 ..

标签: javascriptjsondjangoajax

解决方案


推荐阅读