2017-07-17 13 views
0

私は反応ネイティブ(および一般的なJavaScript)にちょっと新機能です。ボタンを押すと、json apiで特定のキー(この場合は映画)を検索したいと考えています。例えばjsonに反応ネイティブのキーが含まれていないか確認してください。

https://facebook.github.io/react-native/movies.json今すぐボタンを押すだけで、私はAPIは「マトリックス」という名前のムービーが含まれているかどうかを確認したい相続人API。 JSONを取得するために、あなたは次のような方法が必要

ネットワーキングチュートリアル状態:

function getMoviesFromApiAsync() { 
return fetch('https://facebook.github.io/react-native/movies.json') 
    .then((response) => response.json()) 
    .then((responseJson) => { 
    return responseJson.movies; 
    }) 
    .catch((error) => { 
    console.error(error); 
    }); 

}

これはJSONオブジェクトを返しますが、それが含まれている場合、どのようにしてチェックするために、このオブジェクトを照会しますたとえば「The Matrix」という映画がありますか?

ご協力いただければ幸いです。あなたがどうなるのか

答えて

1

は、他のオプションが

Array.prototype.some()

var data = response.some((movie) => movie.title.toUpperCase().indexOf('THE MATRIX') > -1) 

Array.prototype.filter()

を使用するようにしているJSONレスポンスで映画アレイに Array.prototype.find()を使用して値

function getMoviesFromApiAsync() { 

    return fetch('https://facebook.github.io/react-native/movies.json') 
     .then((response) => response.json()) 
     .then((responseJson) => { 
     return responseJson.movies; 
     }) 
     .catch((error) => { 
     console.error(error); 
     }); 
    } 

    //from where you are calling getMovies 
    getMoviesFromApiAsync() 
     .then(response => { 
       var data = response.find((movie) => 
        movie.title.toUpperCase().indexOf('THE MATRIX') > -1 
      ) 
       console.log(data) 
       if(data) { 
        console.log('found'); 
       } 
     }) 

をチェックしています

var data = response.filter((movie) => movie.title.toUpperCase().indexOf('THE MATRIX') > -1) 
+0

indexOf '> -1'を確認してはいけませんか? – RRikesh

+0

@RRikesh、指摘してくれてありがとう、ちょうど答えを更新 –

+0

@ShubhamKhatriクール、ありがとう、それは働く:)しかしもう1つの質問。コンソールにロギングするのではなく、ボタンをクリックしたときにjsonオブジェクト名を表示する警告を表示するにはどうすればよいですか?メソッド内でアラートが機能していないようです。 – Razor88

関連する問題