我正在提取单词的第一个字母以形成首字母缩写词。我有一个数组来存储所有大写的单词,我需要做的就是获取那些大写的字符。

我使用数组reduce()方法获取大写字母。但是,我想获得由不同大小写字母组成的所有首字母缩写词。

var words = ["In", "American", "Broadcast", "Company"];

var output = words.reduce((acronym, word) => {
  acronym += word.charAt(0);
  return acronym;
}, "");


这将产生一个输出IABC,但是我们知道正确的首字母缩写是ABC,所以我想我们可以在迭代中获取C, BC, ABC, IABC然后获得正确的首字母缩写ABC吗?

最佳答案

为了获得预期的结果,请使用以下反转数组选项,并使用带有未移位数组的reduce方法


使用.reverse()的反向数组
循环使用reduce并在每个迭代的开头添加第一个字符
加入每次迭代并推送到结果数组


工作代码示例以供参考



var words = ["In", "American", "Broadcast", "Company"];
var result = []

var output = words.reverse().reduce((acronym, word, i) => {
  acronym.unshift(word.charAt(0))
  result.push(acronym.join(""))
  return acronym;
}, []);

console.log("result", result);





Codepen-https://codepen.io/nagasai/pen/voXXYO?editors=1010

09-25 13:53