访问数组值Javascript

时间:2018-07-13 19:50:13

标签: javascript jquery ajax wordpress

我已经得到了我的第一个问题所需的答案,但是现在我又遇到了同一数组的另一个问题,我正在使用getItem和setItem方法仅显示iziToast弹出窗口一次,并且在显示一次之后不再显示(因为我在setInterval函数中的函数中有以下数组,该函数每30秒运行一次,所以基本上每30秒iziToast弹出窗口就会不断弹出,我不希望这样做。

这是数组:

var alerted = localStorage.getItem('alerted') || '';

for(var i in result) {

                console.log(result[i].id);

                        if (alerted != result[i].id) {
                            $('#chatAudio')[0].play();

                            iziToast.show({
                                message: result[i].notification_text,
                                messageColor: '#424242',
                                backgroundColor: '#fff',
                                theme: 'light',
                                animateInside: true,
                                layout: 1,
                                close: false,
                                position: 'bottomLeft',
                                timeout: 5000,
                                progressBar: false
                            });

                            localStorage.setItem('alerted', result[i].id);
                        }
                }

4 个答案:

答案 0 :(得分:2)

您不能仅在所需范围内循环吗?

var startIndex = 4 // 5th element

for(var i=startIndex; i < results.length; i++) {
    // (...)
}

答案 1 :(得分:1)

有人在几分钟前发布了答案,它是正确的并且可以工作,但是由于某种原因它已被删除,因此我将其重新发布给可能错过它的任何人。

这里是:

for(var i in result) {
                if (i < 5) continue;

                console.log(result[i].id);

                        if (alerted != result[i].id) {
                            $('#chatAudio')[0].play();

                            iziToast.show({
                                message: result[i].notification_text,
                                messageColor: '#424242',
                                backgroundColor: '#fff',
                                theme: 'light',
                                animateInside: true,
                                layout: 1,
                                close: false,
                                position: 'bottomLeft',
                                timeout: 5000,
                                progressBar: false
                            });

                            localStorage.setItem('alerted', result[i].id);
                        }
                }

答案 2 :(得分:1)

MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in)说:

  

注意:for ... in不应用于遍历其中   索引顺序很重要。

看来您的订单很重要。

仍然可以通过以下方式检查迭代次数:

result.indexOf(i)

所以您可以在迭代索引<4时继续这样:

if(result.indexOf(i) < 4) continue;

答案 3 :(得分:0)

for (let i = 4; i < result.length; i++) {
  console.log(result[i]);
}