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))
getByNine(i)
在事件侦听器中,您可以放置对函数(或任何您想要调用它的名称)的引用并传递其索引。在此函数中,您设置默认计数 9 + 无论单击的元素的 id 是什么
对对象数组运行过滤器,当计数正确时返回该项目,然后将计数增加 9 以获取下一个正确的元素
function getByNine(i) {
// code here
}
newCell.forEach((item, i) => {
item.addEventListener('click', () => {
getByNine(i)
})
})
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]);
});
};
添加回答
举报