代码之家  ›  专栏  ›  技术社区  ›  Sam

javascript:循环对象财产[重复]

  •  1
  • Sam  · 技术社区  · 13 年前

    我正在动态构建一个对象,如下所示:

    scope.filters[scope.col.field] = { value: scope.filterValue, operator: scope.filterOperator };
    

    其中scope.col.field是一个字符串。

    那么,我如何遍历scope.filters以访问各种财产的值和运算符?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Scott Mermelstein    13 年前

    以下是一个基本示例:

    for (var fieldName in scope.filters) {
        if (!scope.filters.hasOwnProperty(fieldName)) {
            alert(fieldName + ": " + scope.filters[fieldName]);
        }
    }
    

    for..in 将遍历对象的所有成员。

    最佳做法是始终检查变量是否是其自身的成员,这样就不会拾取任何其他继承的函数或成员。 Here 是一个很好的解释和例子,说明你为什么应该使用 hasOwnProperty .

    我只是设置了一个警报,但很明显,你可以对每个警报做任何你需要的事情 fieldName 及其价值。请注意,在这种情况下,您会收到很多警报。

        2
  •  2
  •   Rahul Tripathi    13 年前

    我想你在找 in 运算符,与 for 环检查这个 MDN

    或者这样尝试:-

    for (var property in object) {
        if (object.hasOwnProperty(property)) {
            // do stuff
        }
    }
    

    在您的情况下:-

    for (var fieldName in scope.filters) {
    if (scope.filters.hasOwnProperty(fieldName))
    {
     //.....
    }