首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将其他数组元素的首字母大写

将其他数组元素的首字母大写
EN

Stack Overflow用户
提问于 2021-02-13 21:57:15
回答 4查看 60关注 0票数 3

我有一个元素数组,["apple", "cherry", "raspberry", "banana", "pomegranate"],我希望它能够使每个奇怪的元素都大写:["Apple", "cherry", "Raspberry", "banana", "Pomegranate"]

我可以大写数组中的每个元素,也可以过滤掉每个奇数元素,但不能同时进行(即过滤只显示奇数元素)。

是否有人对此有任何办法和/或建议?我见过关于大写其他字母、检索其他数组元素等的问题,但与我所问的完全不同(但我仍在寻找)。

代码语言:javascript
复制
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' ]

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-02-13 22:01:01

试试这个:

代码语言:javascript
复制
function alts(arr) {
    return arr.map((el, idx) => {
        return idx % 2 == 0 ? el.charAt(0).toUpperCase() + el.substr(1) : el;
    })
}

console.log(alts(["apple", "cherry", "raspberry", "banana", "pomegranate"]));

我在数组中映射,如果元素的索引是偶数(这是因为索引从0开始,所以当我们从1开始计数时,它会被翻转),然后返回第一个字母大写的元素,如果它是一个奇怪的索引,那么返回元素本身。

票数 1
EN

Stack Overflow用户

发布于 2021-02-13 21:59:08

映射而不是过滤--在回调内部,如果返回大写部分,则返回原始字符串:

代码语言:javascript
复制
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"]));

票数 2
EN

Stack Overflow用户

发布于 2021-02-13 21:59:48

您可以使用简单的for-loop,如下所示:

代码语言:javascript
复制
function alts(arr=[]) {
  const newArr = [...arr];
  for(let i = 0; i < newArr.length; i+=2) {
    const current = newArr[i];
    if(current)
      newArr[i] = current.charAt(0).toUpperCase() + current.substr(1);
  }
  return newArr;
}

console.log(alts(["apple", "cherry", "raspberry", "banana", "pomegranate"]));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66190317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档