reduce方法可以有两个累加器吗?

问题描述 投票:0回答:2

reduce方法可以有两个累加器吗?我需要在我的reduce 中传递另一个常量。我想用 const 1 和 const 2 做同样的事情。我必须创建一个新方法还是可以在这里传递它?如果没有,那么我可以用新方法来完成它并将其传递给这个方法吗?

method(items: any[]): Element[] {
        const xyz: { [key: string]: any[] } = items.reduce(
            (acc, line) => {
                // some code
                        const one = item.title;
                        const two = item.asset;
                        this.arr = [...this.arr, two];
                        acc[arr] = [...(acc[arr] || []), item];
                        return acc;
                    }
                }
            },
            {}
        );
const sets: Item[] = Object.entries(value).map(
   ([title, list]) => ({ 
     list, title, 
}) ); 
return sets; 
}
javascript angular reduce
2个回答
2
投票

reduce 函数仅采用一个 acc 参数,但您可以想象一种存储不同值的结构

const array = [
  0, 1, 2, 3, 4, 5, 6
];

const result = array.reduce((acc, elem) => {
  acc.firstAcc += elem;
  if (elem % 2) {
    acc.secondAcc += 1; 
  }
  
  return acc;
}, {firstAcc: 0, secondAcc: 0});

console.log(result);


0
投票

不,accumulatorreduce方法的单个参数。 Accumulator 可以具有任何格式,因此您可以根据需要使用它,例如创建一个可以传递多个值的结构。

另请阅读文档

如果有帮助请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.