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循环出了问题?
谁能告诉我为什么代码会产生这样的输出,以及我如何修改它才能成功地返回所需的结果?
我现在只是一个新手&这就是为什么您的帮助将在我作为程序员的成长中发挥巨大作用的原因。提前感谢!
发布于 2017-10-31 20:47:33
尝试:
// 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"
发布于 2017-10-31 22:19:19
map方法为您执行for循环。所以在函数中你所需要的就是动物
let secretMessage = animals.map(function(animal) {
return animal[0]
});这将返回数组中每个字符串的第一个字符,动物。你所拥有的其他一切都是对的。
发布于 2017-10-31 20:46:01
你不需要内部循环:
let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
let secretMessage = animals.map(function(animal) {
return animal.charAt(0); // or simply animal[0]
});
console.log(secretMessage.join(''));
https://stackoverflow.com/questions/47035752
复制相似问题