我在下面列出了一個 JSON 陣列:
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"_id": "6125496b64ec43ef984a48ad",
"imdb_id": "tt10872600",
"name": "Spider-Man: No Way Home",
"type": "movie",
"year": "2021"
},
{
"_id": "61f3e33b64ec43ef98553e07",
"imdb_id": "tt13634480",
"name": "The Ice Age Adventures of Buck Wild",
"type": "movie",
"year": "2022"
},
{
"_id": "5c4f384dd582b25756275494",
"imdb_id": "tt9032400",
"name": "Eternals",
"type": "movie",
"year": "2021"
}
]
}
我想做一個函式來通過imdb_id或name(不是兩者)來搜索這個陣列。我該怎么做呢?
我可憐的嘗試:
const json = require('./test.json');
function Search(file){
for (let i = 0; i < file.length; i ) {
console.log(file[i].results[i].imdb_id);
}
}
Search(json);
uj5u.com熱心網友回復:
最簡單的,你可以利用內置的過濾功能,像這樣
const idOrNameEquals = searchStr => item => item.imdb_id === searchStr || item.name === searchStr
const json = require('./test.json')
const foundItems = json.result.filter(idOrNameEquals('Eternals'))
uj5u.com熱心網友回復:
嘗試使用過濾器
function SearchJson(json, imdb_id, name){
return json.result.filter( function(item) {
return imdb_id==null? item.name == name : item.imdb_id==imdb_id
});
};
測驗
var result= SearchJson(json,null, "Eternals");
結果
[
{
"_id": "5c4f384dd582b25756275494",
"imdb_id": "tt9032400",
"name": "Eternals",
"type": "movie",
"year": "2021"
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426553.html
