javascript:循环对象属性

时间:2013-09-19 15:22:21

标签: javascript

我正在动态构建一个对象:

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

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

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

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找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))
{
 //.....
}

答案 1 :(得分:2)

这是一个基本的例子:

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

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

最佳做法是始终检查变量是否为自己的成员,因此您不会选择任何其他继承的函数或成员。 Here是一个很好的解释和示例,说明为什么要使用hasOwnProperty

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