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