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循环有问题?
有人可以告诉我为什么代码会产生这样的输出以及我如何修改它才能成功返回所需的结果吗?
我现在只是一个新手,这就是为什么你的帮助将在我作为一名程序员的成长中发挥巨大作用。预先感谢!
Array.prototype.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"
map 方法为您执行 for 循环。所以函数中你所需要的只是animal[0]
let secretMessage = animals.map(function(animal) {
return animal[0]
});
这将返回数组 Animals 中每个字符串中的每个第一个字符。你所拥有的其他一切都是对的。
你不需要内循环:
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(''));
这里的错误是你在map函数中有一个循环,它已经循环了数组。
正确的代码是
animals.map(x=>x[0]).join('');
//or
animals.map(function(animal){
return animal[0]; //First letter of word
}).join(''); //Array -> String
这应该是代码:
let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
let secretMessage = animals.map(function(animal) {
return animal.charAt(0);
});
console.log(secretMessage.join(''));
就这样做。
let animals = [
'Hen', 'elephant', 'llama',
'leopard', 'ostrich', 'Whale',
'octopus', 'rabbit', 'lion', 'dog'
];
console.log(animals.map(e => e[0]).join(""));
let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
let secretMessage = animals.map(function(animals) {
return animals[0];
});
console.log(secretMessage.join(''));
或
let animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
let secretMessage = animals.map(animals => animals[0]);
console.log(secretMessage.join(''));
.map()
array
函数将回调函数作为参数并返回新数组,以便可以使用此方法获取结果,请参阅以下语法:
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
const secretMessage = animals.map(animals => {
return animals[0];
})
console.log(secretMessage.join(''));
现在,当 .map 方法应用于动物数组时,它仅返回每个字符串的第一个元素,因为我们使用
animals[0]
只读取每个字符串的第一个元素,因此我们的输出是 HelloWorld
const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
const secretMessage = animals.map(animal => {
return animal[0];
})
console.log(secretMessage.join(''));
尝试这个解决方案:---
const user = 'Anisul Haque Bhuiyan';
const username = user.toLowerCase().split(' ').map((elem) => elem[0]).join('');
console.log(username);
输出:'ahb'