我想用相同但使用reduce完成的forEach函数替换这个函数。你能说我哪里做错了吗?

发发

我创建了列,我有一个显示列名称的复选框。当我单击一个复选框时,我会得到一个存储在checkedKeys. 现在checkableColumns包含所有可能的可检查值。那些在 checkableColumns 但不在 checkedKeys 中的元素是那些将从表的列中消失的列。我不会从所有列中过滤,因为某些列应该始终可见。这是 reduce 和 forEach 的常见部分:

const columns = initColumns();
        const checkableColumns = ["n", "yi", "ui", "r", "t"];
        const notCheckedValues = checkableColumns.filter(col=>!checkedKeys.includes(col));
        const filteredColumns =[];

这是我如何用 forEach 解决的:

columns.forEach(column=>{
      if(!notCheckedValues.includes(column.dataIndex)){
            filteredColumns.push(column);
          }
    })

在这里,我如何尝试用 reduce 解决,但它不起作用,我不明白:

const filteredColumns = columns.reduce((allColumns, currentColumn)=>{
      if(notCheckedValues.includes(currentColumn.dataIndex)){
        return allColumns;
      }
      console.log("all cols",allColumns, "push",allColumns.push(currentColumn))
      return allColumns.push(currentColumn)
    }, [])
m90

Array.prototype.push不返回数组,而是返回数组的新长度:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

相反,您需要推送返回累加器

const filteredColumns = columns.reduce((allColumns, currentColumn) => {
  if (notCheckedValues.includes(currentColumn.dataIndex)) {
    return allColumns;
  }
  allColumns.push(currentColumn)
  return allColumns
}, [])

但是,您也可以使用更惯用的方式执行此操作Array.prototype.filterhttps : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

const filteredColumns = columns.filter((currentColumn) => {
  return !notCheckedValues.includes(currentColumn.dataIndex)
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我做错了吗?

我在这个类构造函数上做错了什么?

我在这个使用函数的 Python 程序中做错了什么?

我对 sorted() 函数做错了什么?

我在创建和调用这个简单的类函数时做错了什么?

签署JWT-我做错了吗?

Chocolatey-Python-我做错了吗?

我在架构中做错了吗?

BCNF 分解 --- 我做错了吗?

仅Facebook分享中的问题....您能告诉我我哪里做错了吗?

我用 Javascript 函数和验证写了这个 HTML 代码..但是验证不起作用,我做错了什么

我无法将我的csv从Dropbox加载到RStudio Cloud。你能检查我做错了吗?

我在这个 IF 中做错了什么?

我对这个hackerrank代码做错了什么?

我对这个bash变量做错了什么?

这个 if 语句我做错了什么?

这个键绑定我做错了什么?

我在PowerShell函数参数上做错了什么?

我对该函数及其调用的方法做错了什么?

Java:方法;我在哪里做错了?

我在这个用于功率查询的 M-Code 函数中哪里出错了?

添加字符串而不使用内置库函数,我做错了什么?

在我的后端发送空变量,我的前端做错了吗?

无法从我的电脑中删除Geanymotion ...我做错了吗?

我正在尝试使用聚合函数来合并数据,但我不确定我做错了什么

php foreach 循环我做错了什么

所有目录都是0755,我做错了吗?

发布的对象没有发布,我做错了吗?

类用法和&继承:我做错了吗?