将没有特定 class 的元素推入数组
Push elements that don't have a specific class into an array
我试图创建一个函数来寻找没有 class“检查”的元素,在这种情况下我明白了。然后我想把它们压入一个数组,所以我得到了长度,但是我得到的不是我想要的,你有什么解决办法吗?
请阅读我在代码中的评论
我想要的是获取没有 class "check"
的列表的长度
const countUnactiveList =()=> {
let list = [...todoList.children];
let listArr = [];
list.filter(child => {
if(!child.classList.contains('check')) {
console.log(child); //it works, i got the lists that does not have class "check"
listArr.push(child);
console.log(listArr.length); //the output are 1 2 3 creeping down. But it should be 3
}
});
}
Array.prototype.filter
return 是一个新数组,您在每次迭代中记录长度。
固定代码如下:
const countUnactiveList = () => {
const list = [...todoList.children];
const listArr = list.filter(child => {
return !child.classList.contains('check');
});
console.log(listArr, listArr.length);
return listArr.length;
}
根据函数名称,我认为您只对计数感兴趣。您可以return筛选数组的长度。
使用 reduce 的替代方法:
const countUnactiveList = () => {
const list = [...todoList.children];
return list.reduce((count, child) => {
if(!child.classList.contains('check')) {
count += 1;
}
return count;
}, 0)
};
我试图创建一个函数来寻找没有 class“检查”的元素,在这种情况下我明白了。然后我想把它们压入一个数组,所以我得到了长度,但是我得到的不是我想要的,你有什么解决办法吗?
请阅读我在代码中的评论
我想要的是获取没有 class "check"
的列表的长度const countUnactiveList =()=> {
let list = [...todoList.children];
let listArr = [];
list.filter(child => {
if(!child.classList.contains('check')) {
console.log(child); //it works, i got the lists that does not have class "check"
listArr.push(child);
console.log(listArr.length); //the output are 1 2 3 creeping down. But it should be 3
}
});
}
Array.prototype.filter
return 是一个新数组,您在每次迭代中记录长度。
固定代码如下:
const countUnactiveList = () => {
const list = [...todoList.children];
const listArr = list.filter(child => {
return !child.classList.contains('check');
});
console.log(listArr, listArr.length);
return listArr.length;
}
根据函数名称,我认为您只对计数感兴趣。您可以return筛选数组的长度。
使用 reduce 的替代方法:
const countUnactiveList = () => {
const list = [...todoList.children];
return list.reduce((count, child) => {
if(!child.classList.contains('check')) {
count += 1;
}
return count;
}, 0)
};