1

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

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

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

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

4

2 回答 2

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))
{
 //.....
}
于 2013-09-19T15:23:31.183 回答
2

这是一个基本示例:

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

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

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

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

于 2013-09-19T15:24:50.153 回答