如何在javascript中遍历对象中的所有对象
我有一个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',
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){。