首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript筛选器返回true,但未筛选

JavaScript筛选器返回true,但未筛选
EN

Stack Overflow用户
提问于 2020-01-05 20:18:15
回答 2查看 247关注 0票数 0

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

代码语言:javascript
复制
  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的值,它确实是这样。似乎想不出这件事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-05 20:20:29

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

代码语言:javascript
复制
const filteredWeakArr = weekarr[i].filter(p => {
   console.log(p === arr);
   return p === arr;
});

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

票数 1
EN

Stack Overflow用户

发布于 2020-01-05 20:30:31

这是因为您没有保存过滤器数组。结果应该保存为有效,例如

代码语言:javascript
复制
weekarr[i] = weekarr[i].filter(p => {
          console.log(p === arr);
          return p === arr;
});

另请查看filter了解更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59599771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档