【发布时间】:2017-03-17 17:09:45
【问题描述】:
我刚刚找到了John Resig's Array.remove() 函数。 [看起来他的网站没有正确解析 bb-code,所以很难阅读!]
虽然很漂亮,但问题是'remove()' 方法在加载他的代码后在每个数组的 for-in 语句中枚举。
例如,在添加他的代码之后,这样做:
var a = ["a", "b", "c"];
for (i in a)
{
console.log(i);
}
你会得到:
0
1
2
remove
为什么 Array 对象的所有其他内置属性和方法都不枚举,有什么方法可以防止 remove() 方法发生这种情况?
【问题讨论】:
-
请注意,该博文来自近 9 年前。这是古老的;在您确认它仍然相关之前,通常不会关注很久以前有关 JavaScript 的任何内容。
-
@Pointy 那么现在有更好的方法来删除数组元素吗?
-
代码还不错,但关键是在过去的 9 年里,很多事情都发生了变化。我敢打赌,雷西格先生现在不会用同样的方式编写代码了。
-
你为什么首先在数组上使用
for-in?真的没有意义。我的意思是它有点有效,但它导致的问题超过了好处,而 IMO 实际上并不存在。
标签: javascript arrays methods properties