如何迭代javascript数组并调用更新相同数组的函数?

时间:2014-07-20 11:39:25

标签: javascript

我有这个数组:

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?

2 个答案:

答案 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 = ....

会失败。