長いタイトルの質問に申し訳ありません質問を正しく作成する方法を知りませんでした。いくつかのオブジェクトが配列を含むオブジェクトの配列は、配列を含むオブジェクト内の値でそれをフィルタリングする必要があります
これは疑問です。私はオブジェクトを格納する配列を持っています。これらのオブジェクトには、キータグを持つ別の配列があり、タグでいっぱいになる配列です。
オブジェクト:
var arr = new Array;
arr[0] = {
"like": 0,
"dislike": 0,
"answer": "body",
"tags" : ["offline", "facebook"],
"comments" : []
};
arr[1] = {
"like": 0,
"dislike": 0,
"answer": "body",
"tags" : ["school", "online"],
"comments" : []
};
arr[2] = {
"like": 0,
"dislike": 0,
"answer": "body",
"tags" : ["school", "offline"],
"comments" : []
};
は、[0]、[1]インデックスがrespresentとIDが、それはここでは本当に重要ではありません。
私は(私が知っている、それが唯一の気圧[0] ARRフィルタリングしようとしますが、それはすべてのインデックスを通過するので、私はループを記述します)でそれをフィルタ処理しようとすると、問題がある:
var toFind = "offline";
var filtered = arr[0].filter(function(el) {
return el.tags === toFind;
});
console.log(filtered);
それは、 arr [0] .filterは関数ではありませんが、なぜarr [0]を関数として考慮する必要があると考えられるのか分かりません。
私は[0]、それは空白の配列をバック与える...
を削除するだから私の質問は、私は、タグ配列でタグに基づいて完全なオブジェクトをお返しする.filter機能を得ることができる方法です。だから私が "学校"というタグを検索すると、それはarr [1]とarr [2]という完全なオブジェクトを返します。
希望私は私の質問はクリスタルクリアであり、十分な情報を提供しました。あなたにもう少しの情報が必要な場合は、私にそれを求めてください。または、私に物事を明確にしたい場合は、ちょうど質問してください:)
あなたは私を助けることを願っています!
'arr.filter(X => x.tags.includes(toFind))を試す' – haim770
のObject.prototypeはありません。あなたがarr [0]でアクセスしているものであるfilter()メソッド。 arrそのものをフィルタリングしたいだけです – dgeare
すみません、ありがとうございました。私はデジアのソリューションを使用しました!それは不思議に動作します:) –