2017-07-28 4 views
-1

内のアイテムを見つける:JS - 私は次のように吐き出すJSONフィード(people.json)を有するアレイ

[ 
    { 
     "id":0, 
     "firstName":"Alison", 
    }, 
    { 
     "id":1, 
     "firstName":"Fred", 
    } 
] 

等明確にするために

EDIT **は

Iが持っています「searchTerm」という名前の変数です。 JavaScriptでは、firstNamesearchTermと一致するこの配列のすべてのレコードを検索するにはどうすればよいですか?

+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter – Danmoreng

+0

'firstName'をお探しですか? –

+0

はいfirstNameをお探しですか –

答えて

0

検索は、人の実体である場合、または検索は、人物IDであれば、それはこのArray.filter

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

function readJsonFile(path) 
{ 
    var file = new XMLHttpRequest(); 
    file.open("GET", path, false); 
    file.onreadystatechange = function(){ 
     if(file.readyState === 4){ 
      if(file.status === 200 || file.status == 0){ 

       var mydata = JSON.parse(file.responseText); 
       var result = mydata.filter(function (entry) { 
        return entry.firstname == searchTerm; 
        }); 
      } 
     } 
    } 
    file.send(null); 
} 

見.. 、される "検索" まさに依存

これで、ローカルファイルパスでその関数を実行する必要があります。

readJsonFile("./people.json"); 

ファイルコードから読み取った場合はわかります - 私に知らせて、それをより良く構築します。

結果は、それらのfirstNameとして検索語のと「人」の配列であろう。

+0

おそらく、例としてコードを書くことができます。単一リンクの回答は、SOにぶつかる。 – Andy

+0

に例が追加されました。 –

0

あなたはfirstName

var json = [ 
 
    { 
 
     "id":0, 
 
     "firstName":"Alison", 
 
    }, 
 
    { 
 
     "id":1, 
 
     "firstName":"Fred", 
 
    } 
 
]; 
 
function findByName(name) { 
 
    return json.find(function(f) { return f.firstName == name}); 
 
} 
 
console.log(findByName('Fred'));

0

に一致するオブジェクトを探している場合は、フィルタ機能を使用して、検索語に一致するすべてのオブジェクトを見つけることができます。

var searchTerm = "Alison"; 
var alisons = arr.filter(x => { 
    return x.firstName === searchTerm; 
}); 

フィルタは、フィルタにコールバック関数を使用します。指定された条件を満たす項目のみを新しい配列に含めます。あなたはES6構文に慣れていない場合は、これはただです:

var searchTerm = "Alison"; 
var alisons = arr.filter(function(x){ 
    return x.firstName === searchTerm; 
}); 

返される変数は、alisonsは、最初の名前アリソンだったあなた、アレイ内のすべてのオブジェクトの配列になります。

興味がある場合は、可変ホイストのためにsearchTermについてフィルタ関数が認識します。あなたのコードのために物事を移動する必要がある場合に備えて、私は言いたいと思います:https://www.w3schools.com/js/js_hoisting.asp

関連する問題