辞書が入った配列があります。このように:特定の値を検索して、配列内の辞書オブジェクトを返します。
[{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277}]
date:1991のオブジェクトを検索して値を返す良い方法はありますか?
辞書が入った配列があります。このように:特定の値を検索して、配列内の辞書オブジェクトを返します。
[{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277}]
date:1991のオブジェクトを検索して値を返す良い方法はありますか?
それぞれのメソッドに単純に使用します。
var arr=[{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277},{date:1991, value: 79}];
var v=1991,ans=[];
arr.forEach(function(a){
if(a.date==v)
ans.push(a.value);
});
console.log(ans);
単純なフィルタステートメントを使用します。 あなたはArray#find
メソッドを使用することができます
var data = [{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277}]
var result = data.filter(x => x.date == 1991)
console.log(result)
。古いブラウザチェックpolyfill option of find methodについては
var data = [{
date: 1991,
value: 78
}, {
date: 1992,
value: 102
}, {
date: 1993,
value: 277
}],
date = 1991;
console.log(
(data.find(function(v) {
return v.date == date;
}) || {}).value
)
。メソッドのfilter()
を使用して
、あなたが要求したとして、あなたがしたい場合にも、同じことをするためのユーザー定義関数を使用することができ
const dict = [ {date:1991, value: 78},
{date:1992, value: 102},
{date:1993, value: 277} ]
console.log(dict.filter(obj => obj.date === 1991))
、としてそれを行うことができます単純なfor
とif
ループで答えてください。
var dict = [{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277}]
function search_obj(dict, year) {
for (obj of dict) {
if (obj.date === year) {
return obj
}
}
}
console.log(search_obj(dict, 1991))
を使用して、後でアクセスすることができます他の回答と比較して仕事の – WirAre
あなたはES6と '' filter() ''メソッドを使って最初のメソッドを使うことができます。 – bharadhwaj
独自の検索機能を作成します。
var arr = [{date:1991, value: 78}, {date:1992, value: 102}, {date:1993, value: 277}];
function searchFn(searchDate){
for(var i = 0; i < arr.length; i++)
if(arr[i] == searchDate)
return arr[i];
}
//search
searchFn(1991);//{date:1991, value: 78}
searchFn(1992);//{date:1992, value: 102}
のUE 'for'または' while'ループ – azad