在Javascript中获取数组中每个字符串的第一个字符

新手上路,请多包涵
let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];

let secretMessage = animals.map(function(animal) {
     for(animal = 0; animal <= animals.length-1; animal++) {
            return animals[animal].charAt(animal);
     }
});

console.log(secretMessage.join(''));

嗨,通过这段代码,我想输出字符串 HelloWorld ,它由动物数组中每个字符串/元素的第一个字符组成。但是,输出是 HHHHHHHHHH 。不知道这里是不是for循环的问题?

有人可以告诉我为什么代码会产生这样的输出以及我如何修改它才能成功返回所需的结果吗?

我现在只是一个新手,这就是为什么您的帮助将在我作为程序员的成长过程中发挥巨大作用的原因。提前致谢!

原文由 jack coltrane 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 345
2 个回答

Map 本身就是一个 for loop

尝试:

 // Animals.
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog']

// Secret Message.
const secretMessage = animals.map((animal) => animal[0]).join('')

// Log.
console.log(secretMessage) // "HelloWorld"

或者:

 // Animals.
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog']

// Secret Message.
const secretMessage = animals.reduce((accumulator, animal) => accumulator + animal[0], '')

// Log.
console.log(secretMessage) // "HelloWorld"

原文由 Arman Charan 发布,翻译遵循 CC BY-SA 4.0 许可协议

map 方法为您执行 for 循环。所以你在函数中只需要 animal[0]

 let secretMessage = animals.map(function(animal) {
     return animal[0]
});

这将返回数组 animals 中每个字符串中的每个第一个字符。你拥有的其他一切都是对的。

原文由 Joseph Carrick 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题