【问题标题】:Getting the first characters of each string in an array in Javascript在Javascript中获取数组中每个字符串的第一个字符
【发布时间】:2017-10-31 12:43:36
【问题描述】:
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循环是不是这里的问题?

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

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

【问题讨论】:

标签: javascript arrays loops


【解决方案1】:

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"

【讨论】:

  • 加 1 在这种情况下使用 .reduce() -- 扩展了我的用例场景。
【解决方案2】:

map 方法为您执行 for 循环。所以你需要的只是动物[0]

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

这将返回数组中每个字符串的每个第一个字符,动物。你所拥有的一切都是正确的。

【讨论】:

    【解决方案3】:

    你不需要内循环:

    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(''));

    【讨论】:

      【解决方案4】:

      这里的错误是你在 map 函数中有一个循环,它已经循环了数组。

      正确的代码是

      animals.map(x=>x[0]).join('');
      //or
      animals.map(function(animal){
          return animal[0]; //First letter of word
      }).join(''); //Array -> String
      

      【讨论】:

        【解决方案5】:

        这应该是代码:

        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(''));
        

        【讨论】:

          【解决方案6】:

          只要这样做。

          let animals = [
            'Hen', 'elephant', 'llama', 
            'leopard', 'ostrich', 'Whale', 
            'octopus', 'rabbit', 'lion', 'dog'
          ];
          console.log(animals.map(e => e[0]).join(""));

          【讨论】:

          • 对于 ES5 或更少使用这个:animals.map(function(s) { return s[0]; }).join("");对于 ES6: () => { }
          【解决方案7】:
          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(''));
          

          【讨论】:

            【解决方案8】:

            .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

            【讨论】:

              【解决方案9】:

              const animals = ['Hen', 'elephant', 'llama', 'leopard', 'ostrich', 'Whale', 'octopus', 'rabbit', 'lion', 'dog'];
              
              const secretMessage = animals.map(animal => {
                return animal[0];
              })
              
              console.log(secretMessage.join(''));

              【讨论】:

                【解决方案10】:

                试试这个解决方案:---

                const user = 'Anisul Haque Bhuiyan';
                
                const username = user.toLowerCase().split(' ').map((elem) => elem[0]).join('');
                console.log(username);
                

                输出:'ahb'

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-03-12
                  • 2017-09-24
                  • 2019-07-07
                  • 2022-11-11
                  • 1970-01-01
                  相关资源
                  最近更新 更多