【问题标题】:Mapping through an Array with .map() but excluding 1 item使用 .map() 映射数组,但不包括 1 个项目
【发布时间】:2022-01-08 12:14:12
【问题描述】:

我有一个数组:

let people = ['lucy', 'jerry', 'ricky', 'jessy', 'jerry', 'phil']

我想把除 jerry 之外的每个单词都大写。我该怎么办?

我知道如何通过数组进行映射:

let output = people.map(person => { 
      return person.toUpperCase()
}
console.log(output)

显然,这会返回每个单词都大写的整个数组。 但是同样,如果我想将数组中的所有单词都大写,除了 jerry,它被写了两次怎么办?

【问题讨论】:

  • 使用 if 语句
  • 那么标准是已知的吗? “杰瑞”会原封不动吗?或者,条件是否是任何出现多次的随机名称?
  • 我只是想将数组中的所有其他名称大写。

标签: javascript arrays array.prototype.map capitalize


【解决方案1】:

这是一种快速且可扩展的方法。在它们自己的数组中设置排除项,然后在地图循环中检查它们。

let people = ['lucy', 'jerry', 'ricky', 'jessy', 'jerry', 'phil']
let exclude=['jerry'];

let output = people.map(person => exclude.includes(person) ? person : person.toUpperCase())
console.log(output)


let output2 = people.map(person => exclude.includes(person) ? person : person[0].toUpperCase() + person.slice(1))
console.log(output2)

【讨论】:

    猜你喜欢
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2018-09-21
    • 2018-09-29
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多