为了账号安全,请及时绑定邮箱和手机立即绑定

具有不同索引的数组的输出元素

具有不同索引的数组的输出元素

慕桂英3389331 2023-07-29 16:53:24
我有一张桌子。当我单击一个元素时,我返回它的索引。我怎样才能(从这个元素开始)显示索引+ 9的所有元素。即如果所选元素的索引为0,那么我还需要显示索引为9、18、27等的元素。let newCell = [td#2, td#0, td#2, td#0, td#2, ..... td#1, td#0]newCell.forEach((item, i) => {    item.addEventListener('click', () => {           console.log(i)    })})
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

在这种情况下,您需要做的是跟踪应过滤掉哪些元素的计数,然后在过滤时更新该计数。不幸的是,我不清楚你的细胞数据,所以我继续做出自己的解释。


let data = [];


for (let i = 0; i < 100; i++) {

    data.push({ id: i });

}


function getByNine(id) {

    let count = id + 9

    

    return data.filter(i => {

        if (i.id === count) {

            count = count + 9

            return i

        } else {

            return

        }

    })

}


console.log(getByNine(3))

  1. getByNine(i)在事件侦听器中,您可以放置对函数(或任何您想要调用它的名称)的引用并传递其索引。

  2. 在此函数中,您设置默认计数 9 + 无论单击的元素的 id 是什么

  3. 对对象数组运行过滤器,当计数正确时返回该项目,然后将计数增加 9 以获取下一个正确的元素

function getByNine(i) {

   // code here

}


newCell.forEach((item, i) => {

    item.addEventListener('click', () => {   

        getByNine(i)

    })

})


查看完整回答
反对 回复 2023-07-29
?
Qyouu

TA贡献1786条经验 获得超11个赞

我没有包含“显示”该系列中将出现的那些元素的代码,但下面是记录它们的代码。您可以更新它以显示它们。


const DIFF = 9;


newCell.forEach((item, i) => {

    item.addEventListener('click', ()=>logAllItemsInSeries(i));

}


const logAllItemsInSeries = (i) => {

    console.log(i);

    const series = [];

    while (i < newCell.length) {

        series.push(i);

        i += DIFF;

    }

    series.forEach((index) => {

        console.log(index);

        console.log(newCell[index]);

    });

};


查看完整回答
反对 回复 2023-07-29
  • 2 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信