我正在做一个要求的练习:
创建一个查看对象数组(第一个参数)的函数,并返回具有匹配的属性和值对(第二个参数)的所有对象的数组。如果要包含在返回的数组中,源对象的每个属性和值对都必须存在于集合中的对象中。
我尝试通过以下方式创建:
one
但是这会返回一个空白数组。我想也许我没有完全理解过滤器方法的功能。
列出的解决方案之一是:
two
请尝试彻底解释,帮助像我这样的菜鸟理解为什么我所做的不会给出与给定答案相同的输出:(
万分感谢你的帮助。
答案 0 :(得分:0)
如果您了解过滤器功能(Array.prototype.filter)的工作原理,您会发现自己的错误(还有一个错字,写 srcKeys 而不是 srcKeys.length )。在数组上,当调用过滤器函数时,其传递的回调将在数组的每个对象上运行。 此回调必须返回true或false 。它就像是对数组中每个对象的测试。返回true表示测试通过,返回false表示测试失败。