2017-12-05 14 views
0

id/nameを使用してjsonストアから特定のエントリを見つける方法を教えてください。例えばのためにJavaScript関数id/nameを使用してjsonストアから特定のエントリを見つける方法

を使用して:

var products=[{ 
    "productId": 101, 
    "productName": "Nilkamal Shoe Rack", 
    "productPrice": 2223, 
    "productOriginalPrice": 2470, 
    "productDiscount": "20 %", 
    "productColor": "Sandy Brown", 
    "productSpecifications": [{ 
     "Brand": "Nilakamal", 
     "Type": "Shoe Rack", 
     "Material": "Polypropylene" 
    }], 
    "productServices": ["Installation and Demo not Required", "10 Days Replacement"] 
}, 

{ 
    "productId": 102, 
    "productName": "Seagate Backup Plus Slim 1TB wired external hard disk", 
    "productPrice": 3899, 
    "productOriginalPrice": 7450, 
    "productDiscount": "47 %", 
    "productColor": "White", 
    "productSpecifications": [{ 
     "Brand": "Seagate", 
     "Type": "External Hard Disk", 
     "Capacity": "1 TB", 
     "Connectivity": "USB 3.0", 
     "Ports": "1 Port" 
    }], 
    "productServices": ["3 years warranty", "10 Days Replacement"] 
}] 

どのように私は、ID /名前を使用して、以下の製品のいずれかのすべての詳細を見つけることができますか?

+0

をしたい場合は、単にこの

var myObj = products.find(obj => obj.productId == 102); console.log(myObj); 

ようarray.find使用することができます。その時点では、オブジェクトからなるjavascript配列です。したがって、特定のIDでオブジェクトの配列をフィルタリングし、そのフィルタされたオブジェクトの他の属性にアクセスしたいと思うでしょう。 –

答えて

1

あなたはJSONストアではありません機能、その後

function getObjbyId(id){ 
    var myObj = products.find(obj => obj.productId == id); 
    return myObj; 
} 
+0

[Array.find()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)は素晴らしいです!ただし、IEではサポートされていません。ただし、Edgeではサポートされています。それでも、とてもクールです。 OPはIEサポートを必要としないかもしれませんが、潜在的な互換性の問題について言及するのはまだ良いです。 –

関連する問題