当前位置: 首页 > 知识库问答 >
问题:

如何用forEach数组方法针对特定索引?

韩乐湛
2023-03-14

所以我想做的是console.log我的三节点数组中的一个特定元素。

const sentinel = document.querySelectorAll('.sentinel');

    sentinel.forEach(function(element, index){
    setInterval(function(element) {

        if(index === 0){
            console.log(element);
        }

    }, 3000);
});

我谷歌了一下,发现了这个帖子:在forEach循环中获取一个特定的元素,确实问了同样的问题。然而,当我控制台记录元素时,我期望得到索引为0的节点。然而,我得到了一个空元素。

共有2个答案

高建本
2023-03-14

所以实际上你需要将元素绑定到setInterval函数中

const sentinel = document.querySelectorAll('.sentinel');

sentinel.forEach(function(element, index){
    (function (_element, _index){
        setInterval(function() {

           if(_index === 0){
             console.log(_element);
           }

        }, 3000);
    })(element, index);
});
逄烨
2023-03-14

您可以从setInterval中删除元素,因为内部函数setInterval可以访问外部函数的变量,例如元素。这种行为称为闭包。

此外,还可以使用箭头函数来缩短和清理代码。此外,箭头还具有以下功能:

箭头函数没有自己的this。使用封闭词法范围的this值;箭头函数遵循普通变量查找规则。

sentinel.forEach((element, index) => {
   setInterval(() =>{

    if (index === 0){
        console.log(element);
    }

}, 3000);
 类似资料:
  • 定义一个普通的设置方法,并在每个方法的开头调用; 将方法与依赖于它的所有方法一起移动到一个新类(顶级类或内部类)。 两者都不理想,我希望保持测试的自然分组和清洁,而不是由于缺乏替代方案而分裂。

  • 问题内容: 我正在将Primefaces 3.2与JSF 2.0一起使用。 我正在使用 而对于ajaxStatus: 我在同一页面上还有很多其他primefaces组件,但是我只希望在按下此特定按钮时呈现p:ajaxStatus。有什么好的解决办法吗?ajaxStatus在每个ajax事件上呈现。 问题答案: 如果您有少量按钮,则可以对其进行设置,然后在不进行此设置的情况下保留所需的按钮。 这样,

  • 我是scala新手,想知道如何在scala中的特定索引处启动foreach循环?我的代码目前看起来像这样: 这里的“列表”包含字符串列表[“一”、“二”、“三”、“四”、“五”]。而不是从列表的开始,我希望我的每一个循环从索引i开始操作,忽略所有的VAUES在前面(即只考虑值“四”和“五”)。 谁能帮帮我吗?提前谢谢

  • 我想定义一个函数。将多个元素展平为一个数组的展平函数。我知道以下是不可能的,但基本上我想这样做: 我得到以下错误: 使用.reduce()重写.flant有什么好方法吗? 注意:我知道还有很多其他方法可以在javascript中展平数组,但是我想知道的是如何使用特定的参数来做到这一点。

  • 问题内容: 是否可以找到索引? 在一个循环如下: 会给你索引。 我必须使用循环还是有某种方法可以在循环中获取索引? 问题答案: 是每个元素的索引

  • 问题内容: 我有一个数组,只是想在索引1处获取元素。 如何在JavaScript中数组的第一个索引处获取值? 问题答案: 只需使用