首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找数组中每个元素的第一个字母

查找数组中每个元素的第一个字母
EN

Stack Overflow用户
提问于 2019-06-26 20:14:13
回答 6查看 203关注 0票数 1

我做了一些涉及使用.map()的练习,这一切看起来都很简单。但是,在其中一个示例中,我的任务是使用.map()迭代器返回数组中每一项的第一个字母。

请看下面解决问题的代码。

代码语言:javascript
运行
复制
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];

const secretMessage = animals.map(firstLetter => {
  return firstLetter[0]
});
console.log(secretMessage)

我的问题是,firstLetter()函数如何知道只返回动物数组中每个字符串的第一个字母,而不是重复返回索引为0的项?

EN

回答 6

Stack Overflow用户

发布于 2019-06-26 20:18:18

map()方法使用对调用数组中的每个元素调用所提供的function的结果创建一个新数组。例如:

  • Iteration 1firstLetter = 'Hen' so 'Hen'[0] =
    • Iteration 2firstLetter = 'elephant' so 'elephant'[0] = 'e'。以此类推...

以下是文档:map

票数 1
EN

Stack Overflow用户

发布于 2019-06-26 20:20:10

map()遍历您的数组,复制每个值并对其进行转换,将每个转换结果写入一个新的数组。在每个迭代步骤中,它将当前值视为firstLetter,并使用该值作为参数(firstLetter)调用函数。因此,firstLetter依次是Hen,然后是elephant,等等。在每个数组上,您都可以应用函数,该函数返回参数的第一个字母,然后将其放入新的数组中。

下面的命名应该更清楚地说明我的意思:

代码语言:javascript
运行
复制
const secretMessage = animals.map(currentValue => {
  return currentValue[0]
});
票数 1
EN

Stack Overflow用户

发布于 2019-06-26 20:20:06

.map()接受函数作为参数。在您的例子中,您正在传递一个匿名箭头函数。您的匿名箭头函数有一个可接受的名为firstLetter的参数。当您调用.map()时,它将对数组中的每个元素执行箭头函数,从而将此元素传递到函数中。

因此,firstLetter实际上并不表示firstLetter,而是表示数组中的给定元素。如果您将此参数重命名为更具代表性的名称,可能会更清楚:

代码语言:javascript
运行
复制
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];

const secretMessage = animals.map(animalType => {
  return animalType[0]; // get the first character from a given string
});

因此,执行上面的animalType[0]操作将得到给定字符串的第一个字符,而不是animals数组中的第一个元素。

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

https://stackoverflow.com/questions/56772571

复制
相关文章

相似问题

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