gpt4 book ai didi

javascript - CoffeeScript 中的 reduce() - 如何传递默认值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:32 25 4
gpt4 key购买 nike

所以我最近一直在研究 CoffeeScript。到目前为止,从 JS 的过渡还算顺利,但现在我终于遇到了一个我真的想不通的问题。

我有这段 ES6:

function upcaseOddIndexes (arr, cha, ind) {
if (ind % 2 === 0) {
arr.push(cha.toUpperCase());
} else {
arr.push(cha);
}
return arr;
}

var string = "stringthing";
var upcasedString = string.split("")
.reduce((arr, cha, ind) => upcaseOddIndexes (arr, cha, ind), [])
.join("");

console.log(upcasedArray);

它的工作(返回一个新字符串,奇数索引处的字母大写)很好。 upcaseOddIndexes 函数也没有问题。但是如何将空数组作为 initialValue 传递给 reduce()

我最好的猜测是

.reduce(arr, cha, ind -> upcaseOddIndexes arr, cha, ind) []

这给了我

.reduce(arr, cha, ind(function() {
return upcaseOddIndexes(arr, cha, ind);
}))([])

这无济于事,因为 arr 未定义

我尝试添加更多括号、逗号和诸如此类的东西,但我总是遇到 unexpected , 或类似的东西。

我已经在 Google 上进行了很好的搜索,但到目前为止还没有找到答案。有 this question关于这个主题,但它并没有真正帮助。

非常感谢 =)

最佳答案

你可以将 (arr, cha, ind) => upcaseOddIndexes (arr, cha, ind) 减少到 upcaseOddIndexes:

string = "stringthing"
upcasedString = string
.split ""
.reduce upcaseOddIndexes, []
.join ""

即转换为

var string, upcasedString;

string = "stringthing";

upcasedString = string.split("").reduce(upcaseOddIndexes, []).join("");

或不减少:

string = "stringthing"
upcasedString = string
.split ""
.reduce (arr, cha, ind) ->
upcaseOddIndexes arr, cha, ind
, []
.join ""

即转换为

var string, upcasedString;

string = "stringthing";

upcasedString = string.split("").reduce(function(arr, cha, ind) {
return upcaseOddIndexes(arr, cha, ind);
}, []).join("");

关于javascript - CoffeeScript 中的 reduce() - 如何传递默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161034/

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