javascript - 如何遍历数组以获取每个字符串的第一个字符
问题描述
我正在努力提取单词的第一个字母以形成首字母缩略词。我有一个数组来存储所有大写的单词,我需要做的是获取那些大写的字符。
我使用数组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
吗?
解决方案
要达到预期的结果,请使用以下反转数组选项并使用带有 unshift 数组方法的 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
推荐阅读
- android - 是否可以使用 Xamarin Forms 将 android 状态栏完全透明?
- php - 获取非对象的属性 num_rows
- java - 如何在 .txt 文件中搜索字符串和哈希码?(爪哇)
- javascript - 如何在不创建 HtmlElement 的情况下从 HTML 字符串中提取 textContent?
- python - 当我提交按钮但找不到页面时试图预测该人的薪水
- python - 将 Pandas 时间戳的时区设置为 Boise
- .net - 在构造函数参数中指定依赖实现
- html - 如何使用 Xidel 从具有@srcset 属性的图像中提取所有@srcset 宽度字符串?
- typescript - 在 Typescript 中优雅地将两种类型组合成一个界面
- python-2.7 - 找不到 pocketsphinx(缺少:pocketsphinx_DIR)