我正在提取单词的第一个字母以形成首字母缩写词。我有一个数组来存储所有大写的单词,我需要做的就是获取那些大写的字符。
我使用数组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