1

私は次のようなJavaScriptオブジェクトを持っています:

var object = [{ id: 1, title:"xyz" }, {id: 2, title: "abc"}, {id: 3, title: "sdfs"}];

今私がやりたいことは、最初のIDを読み取って「xyz」を出力し、5秒間一時停止してから、2番目のIDを通過して「abc」を出力し、再び5秒間一時停止してから行くようにオブジェクトを通過することです3 番目のエントリ出力 "sdfs" まで、もう一度 5 秒間一時停止し、エントリ 1 から最初からやり直します。これを無期限に続けたいと思います。どんな助けでも大歓迎です。

4

2 に答える 2

5

あなたの基本的な再帰関数:

function recursive(obj,idx) {
    if (obj[idx]) {
        alert(obj[idx].title);
       setTimeout(function(){recursive(obj,idx+1);}, 5000); // milliseconds
    };
};
recursive(myObject,0);

または、無限にループするには:

function recursive(obj,idx) {
    if (obj[idx]) {
        alert(obj[idx].title);
        setTimeout(function(){recursive(obj,idx+1);}, 5000); // milliseconds
    } else {
        recursive(obj,0);
    };
};
recursive(myObject,0);

http://jsfiddle.net/Mezxw/

于 2012-06-20T19:03:52.730 に答える
0
var object = [{ id: 1, title:"xyz" }, {id: 2, title: "abc"}, {id: 3, title: "sdfs"}];

setTimeout(doNextObject, 5000);

var index = 0;
var length = object.length;

function doNextObject() {
    alert(object[index].title);

    index = ++index % length;
    setTimeout(doNextObject, 5000);
}
于 2012-06-20T19:08:32.383 に答える