在过去的一个小时里,我一直在努力使以下代码起作用:
for (let i = 0; i < weekarr.length; i++) {
if (i - 1 > -1) {
weekarr[i].forEach(arr => {
weekarr[i - 1].forEach(p => {
if (
arr.html === p.html &&
!(arr.category === "prehab" && arr.canDo === true)
) {
weekarr[i].filter(p => {
console.log(p === arr);
return p === arr;
});
// if (i + 1 < 5) weekarr[i + 1].push(arr);
}
});
});
}
}
weekarr看起来像这样:
如果先前的数组包含相同的数组项(在这种情况下使用html属性识别),则我基本上是在尝试删除数组项。一切都可以正常运行,只是根本不进行过滤。我在控制台上记录了它是否应该返回true或false值。似乎无法弄清楚这一点。
答案 0 :(得分:1)
filter函数返回一个新数组。它不会修改原始数组。 尝试将过滤器的结果存储在新变量中并返回?
const filteredWeakArr = weekarr[i].filter(p => {
console.log(p === arr);
return p === arr;
});
现在,filteredWeakArr
应该会达到您想要的结果
答案 1 :(得分:1)