我正在动态构建一个对象:
scope.filters[scope.col.field] = { value: scope.filterValue, operator: scope.filterOperator };
其中scope.col.field是一个字符串。
那么我如何遍历scope.filters以访问各种属性的值和运算符?
答案 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
及其值做任何您需要的事情。请注意,在这种情况下,您会收到很多警报。