javascript - reduce 可以返回一个包含 2 个值的数组吗?
问题描述
所以我正在尝试做一个 js 挑战,我必须将 x 数组的索引 0 中的偶数索引数和 x 数组的 1 索引上的奇数索引相加,我使用了 map 但我感觉它可能会更好,因为我正在使用外部数组返回并且 map 已经返回了一个新数组,我的解决方案:
// write code here.
const sumOfArr = [0, 0];
array.map((num, i) => {
return i % 2 === 0 ? sumOfArr[0] += num : sumOfArr[1] += num
});
return sumOfArr
}
const nums = [50, 60, 60, 45, 70];
const result = alternatingSums(nums);
console.log("result: ", result);
expect(result).toEqual([180, 105]);
我也尝试使用reduce,但它总是返回NaN:
return array.reduce((acc, num, i) => {
console.log(acc, '---', num, '---', i)
return i % 2 === 0 ? acc[0] = acc[0] + num : acc[1] = acc[1] num
}, [0, 0]);
我整个上午都在尝试用 reduce 来找出我的错误,因为我似乎只需要将数组减少到一个更小的数组。
解决方案
你可以这样做:
function alternatingSums(arr) {
return arr.reduce((acc, n, i) => {
acc[i % 2] += n;
return acc;
}, [0, 0]);
}
const nums = [50, 60, 60, 45, 70];
const result = alternatingSums(nums);
console.log("result: ", result); // [180, 105]
推荐阅读
- svn - SVN 客户端错误“[...] 处的服务器不支持 HTTP/DAV 协议”
- python - Python3 print (something, flush=True) 仅在 localhost 上工作,在外部缓冲
- android-studio - 在 ABI 的 NDK 工具链文件夹中找不到工具链,前缀为:mipsel-linux-android
- intellij-idea - intellij 无法识别来自 @Data 注释的 lombok 生成的方法
- python - 从列表pos_tag序列列表中仅提取名词?
- javascript - 想要从字符串中删除 Html 标签并在结束标签上添加下一行
- sas - SAS:将一个表中的列映射到另一个表中的多个列中的任何一个
- vba - 通过 VBA 传递给 Powershell 字符串的双引号
- go - Terraform 自定义提供程序 - 资源支持错误
- node.js - 来自 NodeJS 的发布请求导致空包