javascript - 将每个其他数组元素的第一个字母大写
问题描述
我有一个元素数组,["apple", "cherry", "raspberry", "banana", "pomegranate"]
,我想要它,以便每个奇数元素都大写:["Apple", "cherry", "Raspberry", "banana", "Pomegranate"]
。
我可以大写数组中的每个元素,并且可以过滤掉每个奇数元素,但不能同时过滤(即过滤只显示奇数元素)。
有没有人对此有任何方法和/或建议?我见过关于大写所有其他字母、检索所有其他数组元素等的问题,但与我所问的完全不同(但是,我仍在寻找)。
function alts(arr) {
const newArr = arr.filter((el, idx) => {
if (idx % 2 === 0) {
return arr.map(a => a.charAt(0).toUpperCase() + a.substr(1));
}
})
return newArr;
}
console.log(alts(["apple", "cherry", "raspberry", "banana", "pomegranate"]));
// Just returns [ 'apple', 'raspberry', 'pomegranate' ]
解决方案
映射而不是过滤 - 在回调内部,如果是偶数,则返回大写部分,否则返回原始字符串:
function alts(arr) {
return arr.map((str, i) => i % 2 === 1 ? str : str[0].toUpperCase() + str.slice(1));
}
console.log(alts(["apple", "cherry", "raspberry", "banana", "pomegranate"]));
推荐阅读
- php - PHP | 波兰语字符 - 将 UTF-8 转换为 ANSI
- asp.net-mvc - Angular TypeScript 中的 JsonProperty
- xamarin.forms - Xamarin 表单 - 重复屏幕
- sql - 内联发票
- wildfly - 什么版本的 Wildfly 对应 EAP 7.2?
- python - 有没有办法在函数之外从已部署的 Google Cloud Function 导入 python 帮助程序库?
- java - Java 中 null(Input/Output)Stream API 的用例是什么?
- java - 如何在where子句中使用序列化对象从数据库中获取数据
- java - 休眠完整性约束违规:NOT NULL 检查约束:对于onetoOne Mapping using spring boot crud
- jq - jq 选择或语句