以下代码段中的最小更改是什么,以便输出为“ ABC”?

时间:2019-03-17 15:57:52

标签: javascript

你好,我的函数遇到了这个问题

const string = ['a', 'b', 'c'].reduce((acc, x) => x.concat(x.toUpperCase()));
console.log(string );

在最终结果中,我想获得“ ABC”

4 个答案:

答案 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