2014-01-28 50 views
0

下面是我用JavaScript解析的JSON数据的一部分。限制解析JSON细节时检索到的对象数

"credits":{ 
"cast":[{ 
    "id":819,"name":"Edward Norton","character":"The Narrator","order":0,"cast_id":4,"profile_path":"/iUiePUAQKN4GY6jorH9m23cbVli.jpg" 
    }, 



    {"id":287,"name":"Brad Pitt","character":"Tyler Durden","order":1,"cast_id":5,"profile_path":"/kc3M04QQAuZ9woUvH3Ju5T7ZqG5.jpg" 
    }, 

    {"id":1283,"name":"Helena Bonham Carter","character":"Marla Singer","order":2,"cast_id":6,"profile_path":"/58oJPFG1wefMC0Vj7sFzHPrm67J.jpg" 
    }, 

    {"id":7470,"name":"Meat Loaf","character":"Robert 'Bob' Paulson","order":3,"cast_id":7,"profile_path":"/pwNyXgegO1nlZ8uWT847JM8EjGj.jpg" 
    }, 

    {"id":7499,"name":"Jared Leto","character":"Angel Face","order":4,"cast_id":30,"profile_path":"/msugySeTCyCmlRWtyB6sMixTQYY.jpg" 
    }, 

    {"id":7471,"name":"Zach Grenier","character":"Richard Chesler","order":5,"cast_id":31,"profile_path":"/jghYiKdNkVehKpiVyE97AWrU9KQ.jpg" 
    }, 

    {"id":7497,"name":"Holt McCallany","character":"The Mechanic","order":6,"cast_id":32,"profile_path":"/hQBfcw9KVszdenlTZTR8AIrSpex.jpg" 
    }, 

    {"id":7498,"name":"Eion Bailey","character":"Ricky","order":7,"cast_id":33,"profile_path":"/4MnRgrwuiJvHsfoiJrIUL4TkfoC.jpg"}] 

我用下面的代码解析数据,它完美的工作。我的问题是,我想限制只有5

actor = 0, 
acting = []; 

for (actor = 0; actor < entries.credits.cast.length; actor++) { 
    acting.push(entries.credits.cast[actor].name + ' as ' 
       + entries.credits.cast[actor].character); 
} 

document.getElementById('cast').innerHTML = acting.join(', '); 
+1

;演员<条目。 credits.cast.length; actor ++){'to'for(actor = 0; actor <5; actor ++){'将从列表中拉出前五个。 –

+1

@RyanWillis,但是当少于5时出现错误,所以'min(5,entries.credits.cast.length)'会比'5'更好0 –

+1

我的不好,然后紧接着'acting = [] ;'你可以有'actlimit =(entries.credits.cast.length <5)? entries.credits.cast.length:5;'并将'5'改为'actlimit' –

回答

1

你能做到这一点例如像提取演员的数量:更改为`(演员= 0

var acting = []; 
var maxCount = 5; 
var count = entries.credits.cast.length; 
if(count > maxCount) count = maxCount; 
for (var actor = 0; actor < count; actor++) { 
    acting.push(entries.credits.cast[actor].name + ' as ' + entries.credits.cast[actor].character); 
} 

document.getElementById('cast').innerHTML = acting.join(', '); 
+0

非常感谢! – Craig