📜  在 JavaScript 中使用 for..in 循环的缺点

📅  最后修改于: 2022-05-13 01:56:19.863000             🧑  作者: Mango

在 JavaScript 中使用 for..in 循环的缺点

在本文中,我们将了解使用for..in循环的缺点以及如何解决这些问题。

使用 for..in 循环的缺点:

原因 1:当您使用原型在数组或对象中添加属性时,以及在迭代数组 x 时与该属性无关的任何其他数组arr时,您将获得该属性。

示例:您添加了一个属性myCustomProp 数组.原型。

句法:

Array.prototype.myCustomProp = "Hello World";

现在创建一个数组x并为其分配一些值并遍历for..in循环。

Javascript


Javascript


Javascript


Javascript


输出 :

1
2
3
4
5
"Hello World"

解决方案:您可以使用hasOwnProperty()解决此问题 方法。

Javascript


输出 :

1
2
3
4
5

原因 2: for..in循环忽略了数组的未定义值。假设您创建了一个空数组arr并将一些项目分配给arr[0]、arr[3]、arr[5]、 这意味着arr[1], arr[2], arr[4]undefined ,但for..in循环会忽略它们。

例子:

Javascript


输出 :

  • 使用 for 循环:
    "A"
    undefined
    undefined
    "D" 
    undefined
    "F"
  • 使用 for..in 循环:
    "A"
    "D"
    "F"

一个简单的 for循环打印数组的所有元素,包括未定义for..in循环忽略所有未定义的值。但这仅适用于其值未定义的数组,但当数组中明确存在未定义时, for..in循环不会忽略它们。

Javascript


输出 :

undefined
undefined
undefined
Hello World