【发布时间】:2019-07-15 03:16:05
【问题描述】:
假设我有一个对象const a = { length: 10, b: "c"}。
现在我想使用$.each() 函数迭代对象的属性。
但该函数会将我的对象视为一个数组,因为存在lenght 属性。在这种情况下我该怎么办?
谢谢。
【问题讨论】:
-
什么意思,它认为对象是一个数组?似乎在这里工作得很好jsfiddle.net/o6bw13yv(尽管你可能会考虑完全放弃 jQuery,标准的内置方法工作得很好)
-
Object.keys(a)将返回键的数组。然后你可以遍历它。 -
它应该被认为是一个普通的对象,jQuery 工作的魔法会将它视为一个可迭代对象
-
jQuery不检查length属性。我猜它正在做a instanceof Array或typeof a[Symbol.iterator] === "function" -
@CertainPerformance,如果您可以提供您在评论中输入的内容作为答案,我会接受。这是我一直在寻找的。谢谢。
标签: javascript jquery arrays object ecmascript-6