Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中遍历对象中的所有对象_Javascript_Loops_Object_For Loop - Fatal编程技术网

如何在javascript中遍历对象中的所有对象

如何在javascript中遍历对象中的所有对象,javascript,loops,object,for-loop,Javascript,Loops,Object,For Loop,我有一个javascript函数,它传递一个包含多个其他对象的对象,例如 createButtons({ normalButtons: { button: { type: 'website', name: 'Website', } } socialButtons: { socialButton: { type: 'fb-share',

我有一个javascript函数,它传递一个包含多个其他对象的对象,例如

createButtons({ 
    normalButtons: {
        button: {
            type: 'website',
            name: 'Website',
        }
    }
    socialButtons: {
        socialButton: {
            type: 'fb-share',
            name: 'Share on Facebook'
        },
        socialButton: {
            type: 'copyUrl',
            name: 'Copy Link'
        }
    }
});
现在我想遍历所有的社交按钮,但是当我使用for时。。。在循环中,它似乎只获取第一项

function createButtons(options) {
    for (x in options.socialButtons) {
        console.log(options.socialButtons[x]);
    }
}
它只记录一个对象,Facebook对象

如果我做错了什么,或者有没有更好的方法来解决这个问题,请告诉我


谢谢大家!

您的对象将无法作为socialButtons中的两个项目工作:具有相同的键,因此,第一个按钮将替换为第二个按钮


我建议将第二个socialButton更改为socialButton2,这样一切都会正常工作

您的对象将无法作为socialButtons中的两个项目工作:具有相同的键,因此,第一个按钮将替换为第二个按钮


我建议将第二个socialButton更改为socialButton2,这样一切都会正常工作

您正在成功循环该对象的属性。问题是你只有一个财产

您为
socialButton
定义了一个值,然后为
socialButton
定义了另一个值

您需要使您的属性名称唯一


更好的方法是:使用数组。

您正在成功地循环该对象的属性。问题是你只有一个财产

您为
socialButton
定义了一个值,然后为
socialButton
定义了另一个值

您需要使您的属性名称唯一


更好的方法是:使用数组。

socialButton
对象内部使用相同的属性名
socialButton
。这就是你问题的原因


将名称
socialButton
更改为唯一的属性名称将帮助您实现所需的功能。

您在
socialButton
对象内部使用相同的属性名称
socialButton
。这就是你问题的原因


将名称
socialButton
更改为唯一的属性名称将帮助您实现所需的功能。

您有重复的密钥<代码>社交按钮出现两次您有重复的键
socialButton
发生两次如果我为每个socialButton创建一个数组,那么在迭代数组并获取每个socialButton的“类型”方面会有什么变化?“如果我为每个socialButton创建一个数组”-不要。创建一个包含所有socialButtons的数组。是的,很抱歉,我的速度有点太快了,但这就是我的意思。你应该用一个标准来替换(options.socialButtons中的x)的
{
(var=0;etc循环或调用您的\u array.forEach。如果我为每个socialButton创建一个数组,那么在迭代数组并获取每个socialButton的“类型”方面会有什么变化?“如果我为每个socialButton创建一个数组”-不要。创建一个包含所有socialButtons的数组。是的,很抱歉,我的速度有点太快了,但这就是我的意思。你要用(var=0;etc循环的标准或对你的数组的调用来替换(options.socialButtons中的x){。