你好,我的函数遇到了这个问题
const string = ['a', 'b', 'c'].reduce((acc, x) => x.concat(x.toUpperCase()));
console.log(string );
在最终结果中,我想获得“ ABC”
答案 0 :(得分:1)
您需要做两件事
concat()
一起在acc
上应用x
acc
的初始值设置为''
的第二个参数来设置reduce()
+
代替contat()
const string = ['a', 'b', 'c'].reduce((acc, x) => acc+x.toUpperCase(),'');
console.log(string );
您也可以使用map()
和join()
const string = ['a', 'b', 'c'].map(x=>x.toUpperCase()).join('')
console.log(string );
答案 1 :(得分:1)
您似乎想要一个字符串?从join()
到字符串,而.toUpperCase()
是直接而简单的。使用reduce()
是过分的。
const string = ['a', 'b', 'c'].join('').toUpperCase();
console.log(string);
答案 2 :(得分:0)
您没有将concat()
与累加器acc
字符串一起使用,也没有传递其初始值,该初始值应为空字符串""
(否则,结果字符串的第一个字符将会小写,因为toUpperCase()
不会应用到它。
详细了解 Array#reduce
,此函数将累加器作为第一个参数,并将数组元素作为第二个参数和另外两个可选参数。
const string = ['a', 'b', 'c'].reduce((acc, x) => acc.concat(x.toUpperCase()), "");
console.log(string );
答案 3 :(得分:0)
您有两个未中。
acc.concat(x.toUpperCase())
initial value
。否则,它不会将first
字符更改为大写字母
const string = ['a', 'b', 'c'].reduce((acc, x) => acc.concat(x.toUpperCase()),'');
console.log(string );
侧面说明:-您可以简单地使用+
代替concat