Javascript 了解嵌套if语句如何影响循环的递增

Javascript 了解嵌套if语句如何影响循环的递增,javascript,Javascript,努力确保我了解FCC活动中发生的情况。我不明白为什么我们使用keys.length而不是collection.length来迭代对象的集合数组。本例中的keys.length仅为1,集合数组为3,那么如何到达整个数组?是因为循环中的if语句返回false,因此在条件返回true之前不增加i值吗?提前感谢您帮助一个noob 函数whatisiname(集合,源){ 让keys=Object.keys(源) 设arr=collection.filter(函数(obj){ for(设i=0;i

努力确保我了解FCC活动中发生的情况。我不明白为什么我们使用keys.length而不是collection.length来迭代对象的集合数组。本例中的keys.length仅为1,集合数组为3,那么如何到达整个数组?是因为循环中的if语句返回false,因此在条件返回true之前不增加i值吗?提前感谢您帮助一个noob

函数whatisiname(集合,源){
让keys=Object.keys(源)
设arr=collection.filter(函数(obj){
for(设i=0;i});这里发生了两件事。1. 
collection.filter(…)
正在调用
collection
中每个元素括号中的函数。2.在这个函数中,for循环在
Object.keys(source)
给定的数组中的每个元素上迭代
Object.keys(…)
返回一个数组,该数组由您提供给此函数的对象中的所有键组成,在您的示例中为
source
。所以实际上有两个循环


您可以看看
filter
的功能,尤其是示例。此外,您还可以检查什么
,并确保了解javascript中数组和对象之间的区别。

谢谢!那么,我可以使用嵌套for循环而不是过滤器来实现相同的结果吗?外部循环使用collection.length,内部循环使用keys.length?我需要对物品更加舒适,它们对我来说是新的。谢谢你花时间帮我,我很感激!是的,您可以使用for循环而不是
过滤器
。但是
filter
在这种情况下更为常见,可以更好地向阅读您代码的其他人传达您的意图
filter
基本上是说:查看一个数组的所有元素,只将那些元素放在另一个数组中(在您的例子中是
arr
),作为
filter
(回调)参数的函数返回true。