【发布时间】:2013-09-19 15:22:21
【问题描述】:
我正在像这样动态构建一个对象:
scope.filters[scope.col.field] = { value: scope.filterValue, operator: scope.filterOperator };
其中 scope.col.field 是一个字符串。
那么我如何遍历 scope.filters 以访问各种属性的值和运算符?
【问题讨论】:
标签: javascript
我正在像这样动态构建一个对象:
scope.filters[scope.col.field] = { value: scope.filterValue, operator: scope.filterOperator };
其中 scope.col.field 是一个字符串。
那么我如何遍历 scope.filters 以访问各种属性的值和运算符?
【问题讨论】:
标签: javascript
这是一个基本的例子:
for (var fieldName in scope.filters) {
if (!scope.filters.hasOwnProperty(fieldName)) {
alert(fieldName + ": " + scope.filters[fieldName]);
}
}
for..in 会遍历一个对象的所有成员。
最好始终检查变量是否是它自己的成员,这样您就不会选择任何其他继承的函数或成员。 Here 是一个很好的解释和示例,说明为什么应该使用 hasOwnProperty。
我刚刚设置了一个警报,但是您显然可以对每个 fieldName 及其值做任何您需要的事情。请注意,在这种情况下,您会收到很多警报。
【讨论】:
我认为您正在寻找 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))
{
//.....
}
【讨论】: