我有这个数组:
var test.qs =
[
{"answer":null,
"testQuestionId":710
"synchronized":true},
{"answer":null,
"testQuestionId":711
"synchronized":false
]
我想在syncronized属性等于false的所有数组对象上调用一个函数,如下所示:
if (!test.qs[x].synchronized) {
httpPutTestQuestion(number)
.success(function (data) {
test.qs[x].synchronized = true;
})
}
但是我怎么能这样做,好像我把它放到for循环中然后当函数返回时我还没有值x?
答案 0 :(得分:1)
我认为这应该适合你。
test.qs.forEach(function (q) {
if (!q.synchronized) {
httpPutTestQuestion(number)
.success(function (data) {
q.synchronized = true;
})
}
})
答案 1 :(得分:1)
为什么不使用普通的旧循环,比如
var i;
for (i = 0; i < qs.length; i += 1) {
if (qs[i].synchronized === false) {
httpPutTestQuestion(number)
.success(function (data) {
test.qs[x].synchronized = true;
})
};
}
}
您可以使用length
属性获取数组的长度。另请注意,JavaScript中的变量名称中不能包含.
。所以,
var test.qs = ....
会失败。