对不起,长标题问题不知道如何正确地表达我的问题。对象数组包含另一个数组的对象,需要通过包含数组的对象中的值对数组进行过滤
所以这是一个问题,我得到了一个存储对象的数组,而在这些对象内部还有另一个带有键标签的数组,并且这个数组是用标签填充的。
对象:
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,但在这里,是不是真的很重要。
问题是,当我尝试用(我知道它只是试图筛选ARR [0]个大气压,但我会如此这般通过所有的指标写一个循环)对其进行过滤:
var toFind = "offline";
var filtered = arr[0].filter(function(el) {
return el.tags === toFind;
});
console.log(filtered);
它说arr [0] .filter不是一个函数,但不知道为什么它认为应该将arr [0]作为一个函数来考虑。
当我删除了[0]这还给一个空白阵列...
所以我的问题是我怎么能得到一个基于标签阵列标签.filter功能来回馈完整的对象。因此,如果我搜索标签“school”,它会返回arr [1]和arr [2]这些完整的对象。
希望我的问题很清楚,我提供了足够的信息。如果你们需要更多信息,请随时向我咨询。或者,如果你想要我澄清的事情,只是问:)
希望你们能帮助我!
'arr.filter(X => x.tags.includes(找到相当))' – haim770
的Object.prototype中没有一个filter()方法,这就是你用arr [0]访问的内容。你只是想过滤ARR本身 – dgeare
谢谢你们现在的作品,现在感谢所有的快速回复!我用dgeare的解决方案!它的作品奇观:) –