gpt4 book ai didi

javascript - 使用reduce组成一个累积字符串数组

转载 作者:行者123 更新时间:2023-12-03 14:13:29 27 4
gpt4 key购买 nike

我想为给定的数字返回类似 ['4', '42','420'] 的东西:420
我使用reduce来累积数字并使用索引来连接索引中的数字。前两次迭代工作正常,但在第三次迭代中,我无法思考如何处理结果,因为它是未定义的 => [ '4', '42', '4,42undefined' ]有什么想法吗?

function createArrayOfTiers(num) {
const onArray = String(num).split('')
onArray.reduce((acc, curr, index) => {
if (!index) return curr
const newAcc = [...acc, acc + curr[index -1]]

return newAcc
},[])

}
createArrayOfTiers(420)

最佳答案

如果您想收集数字的增量数字,我认为更清晰的方法是使用 .map (或 Array.from )改为:在每次迭代中,将(字符串化的)数字从索引 0 切片到当前索引。

function createArrayOfTiers(num) {
const strNum = String(num);
return [...strNum].map((_, i) => strNum.slice(0, i + 1));
}
console.log(createArrayOfTiers(420));

要修复现有代码,您需要访问累加器的前一个元素,而不是 curr 的前一个元素(这实际上没有意义),将其乘以 10,然后将被迭代的数字添加到其中。还要确保返回构造的数组:

function createArrayOfTiers(num) {
const onArray = String(num).split('')
return onArray.reduce((acc, curr, index) => {
if (!index) return Number(curr);
return [...acc, acc[index - 1] * 10 + Number(curr)];
}, [])
}
console.log(createArrayOfTiers(420));

关于javascript - 使用reduce组成一个累积字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65044358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com