如何将数组反转回用户输入?

时间:2014-03-27 14:19:59

标签: javascript arrays

我不确定如何说出这个但是可以使用我捕获的信息然后将其播放给用户吗?

例如。

  • 用户按下btn1btn2btn3(有一个单独的声音 响应每个按钮点击)
  • 按下的按钮和时间存储在空数组([{"time":1176,"elemId":"btn1"},{"time":1554,"elemId":"btn2"}]
  • 然后将阵列保存到本地存储
  • 然后从本地存储中检索数组

现在,从这一点开始,是否可以回放数组中的信息以模仿用户的确切行为?

道歉,如果这太模糊,但我不能完全确定我在寻找什么,提前谢谢!

编辑:这是我到目前为止的所有内容,我可以检索我的数组,它显示在我的控制台日志中,但我想不出如何从这一点开始。

function get() {

 // Retrieve the object from storage
 var value = localStorage.getItem("eventlist");
 console.log('value:  ', JSON.stringify(value));
 } 

1 个答案:

答案 0 :(得分:0)

这是我写的小提琴:http://jsfiddle.net/n6R9S/1/

我没有假设jQuery,虽然这对我来说更容易。

超时中的函数功能是由于存在范围问题。

var playback = [{
    "time": 1176,
    "elemId": "btn1"
}, {
    "time": 1554,
    "elemId": "btn2"
}]

// Do we assume that the array is in order? If not, we have to re-order it to make sure.

var output = document.getElementById('output');
document.getElementById('btn1').onclick = function () {
    output.innerHTML += '1';
}
document.getElementById('btn2').onclick = function () {
    output.innerHTML += '2';
}

for (i = 0; i < playback.length; i++) {
    play = playback[i];
    setTimeout((function (play) {
        return function () {
            document.getElementById(play.elemId).onclick();
        }
    })(play), play.time)
}