JavaScript 过滤器返回 true 但不过滤

标签 javascript arrays reactjs filter

在过去的一个小时里,我一直在努力让以下代码正常工作:

  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 看起来像这样:

weekarr

如果前一个数组包含相同的数组项(在本例中使用 html 属性识别),我基本上会尝试删除该数组项。一切都很完美,只是它根本没有过滤。我控制台记录了它是否在应该返回 true 或 false 值时返回,事实确实如此。这题好像想不通

最佳答案

过滤器函数返回一个新数组。它不会修改原始数组。 尝试将过滤器的结果存储在一个新变量中并返回它?

const filteredWeakArr = weekarr[i].filter(p => {
   console.log(p === arr);
   return p === arr;
});

现在,filteredWeakArr 应该得到您想要的结果

关于JavaScript 过滤器返回 true 但不过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599771/

相关文章:

javascript - 如何计算 javascript 中带有表情符号的字符串的正确长度?

C: 字符数组中的单词

reactjs - 处理前端的后端错误状态

javascript - 如何在 HTML5 canvas 上绘图时得到平滑的曲线?

javascript - 如何在图库中的图像上获得不同的悬停覆盖

C++ 如何遍历数组中的字符串?

c++ - 对数组 : can it actually happen? 的右值引用

javascript - 将 props 传递给从另一个文件导入的函数

reactjs - 使用 bool 值的 useState

javascript - 在 Angular 工厂上使用套接字