[英]Find specific value in JSON object
{
"adult": false,
"budget": 17000000,
"crew": [
{
"credit_id": {},
"department": "Directing",
"id": 40223,
"job": "Director",
"name": "Joe Carnahan",
"profile_path": "/5YPrZ1JprLwtU4tn5DG0wqLjsAT.jpg"
},
{
"credit_id": "55444d6bc3a368573b0008ba",
"department": "Writing",
"id": 40223,
"job": "Writer",
"name": "Joe Carnahan",
"profile_path": "/5YPrZ1JprLwtU4tn5DG0wqLjsAT.jpg"
},
{
"credit_id": "52fe4482c3a36847f809a3ed",
"department": "Production",
"id": 2236,
"job": "Producer",
"name": "Tim Bevan",
"profile_path": "/f7o93O1KocuLwIrSa7KqyL1sWaT.jpg"
}
}
嗨! 這是tmdb php api的tmdb示例輸出。 例如,如何通過jquery獲取Directors名稱? 機組輸出的順序是隨機的。
通常,當您在數組中搜索內容時,您要遍歷數組直到找到它。 無論您使用的是jQuery還是純JavaScript或任何其他具有數組的語言,這都是相同的。
在您的情況下,您要搜索屬性job
等於字符串"Director"
。
找到它后,您想從該對象返回屬性name
。
您可以使用for
循環執行此操作:
function findDirectorName(data) {
for (let i = 0; i < data.crew.length; i++) {
let crewMember = data.crew[i];
if (crewMember.job === 'Director') {
return crewMember.name;
}
}
}
或者也許是while循環:
function findDirectorName(data) {
let i = 0;
while (i < data.crew.length) {
let crewMember = data.crew[i];
if (crewMember.job === 'Director') {
return crewMember.name;
}
i++;
}
}
使用內置方法Array.prototype.find
和arrow函數,可以將代碼簡化為:
function findDirectorName(data) {
let director = data.crew.find(crewMember => crewMember.job === 'Director');
return director ? director.name : undefined;
}
嘗試這個:
var aMovie = { "adult": false, "budget": 17000000, "crew": [ { "credit_id": {}, "department": "Directing", "id": 40223, "job": "Director", "name": "Joe Carnahan", "profile_path": "/5YPrZ1JprLwtU4tn5DG0wqLjsAT.jpg" }, { "credit_id": "55444d6bc3a368573b0008ba", "department": "Writing", "id": 40223, "job": "Writer", "name": "Joe Carnahan", "profile_path": "/5YPrZ1JprLwtU4tn5DG0wqLjsAT.jpg" }, { "credit_id": "52fe4482c3a36847f809a3ed", "department": "Production", "id": 2236, "job": "Producer", "name": "Tim Bevan", "profile_path": "/f7o93O1KocuLwIrSa7KqyL1sWaT.jpg" }] }; var findDirector = function(aMovie){ if( !aMovie.crew || aMovie.crew.length==0 ) return ""; var director = aMovie.crew.find( function(member){ return member.job.toLowerCase() == 'director'; }); return director.name; }; alert(findDirector(aMovie));
我喜歡使用some()
。
aMovie.crew.some(function(member) {
var job = member.job.toLowerCase();
if(job == "director") return member;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.