【问题标题】:extracting first character from each array element doesn't work [closed]从每个数组元素中提取第一个字符不起作用[关闭]
【发布时间】:2016-01-15 17:55:13
【问题描述】:

我试图从 Javascript 中的每个数组元素中提取第一个字符,所以我最终提取了 1、4、7、2、5 和 8,但我不断收到“extractElement is不是函数”我做错了什么?

var characterArray = ['123','456','789','234','567','890'];

var extractElement;
var extractSlicedCharacter;

function extractEachFirstNumber(){
   for(counter = 0; counter <= characterArray.length; counter++){
      extractElement = characterArray[counter];
      extractSlicedCharacter = extractElement.slice(0,1);
   }
}

【问题讨论】:

  • 使用&lt; 而不是&lt;=。

标签: javascript arrays slice


【解决方案1】:

Slice 返回一个数组,而不是单个字符。你应该只使用 charAt。

var characterArray = ['123','456','789','234','567','890'];

var extractElement;
var extractSlicedCharacter;

function extractEachFirstNumber(){
   for(counter = 0; counter <= characterArray.length; counter++){
      extractElement = characterArray[counter];
alert(extractElement.charAt(1));
//extractSlicedCharacter = extractElement.charAt(1);

   }
}

【讨论】:

    【解决方案2】:

    它对我来说很好,除了你应该将循环逻辑从 &lt;= 更改为 &lt;

    var characterArray = ['123','456','789','234','567','890'];
    
    var extractElement;
    var extractSlicedCharacter;
    
    function extractEachFirstNumber(){
       for(counter = 0; counter < characterArray.length; counter++){
          extractElement = characterArray[counter];
          extractSlicedCharacter = extractElement.slice(0,1);
         console.log(extractSlicedCharacter);
       }
    }
    extractEachFirstNumber();

    【讨论】:

    • 不用切片,你可以使用 characterArray[0][0]、characterArray[1][0] 等等...
    • 或者只是将extractSlicedCharacter = extractElement.slice(0,1);替换为extractSlicedCharacter.push(extractElement.slice(0,1));(并确保将extractSlicedCharacter定义为一个数组)
    【解决方案3】:

    @depperm 回答应该可以解决问题

    另一种可能是

    var outputArray = [];
    characterArray.forEach( function(element){
       outputArray.push( element.charAt(0) );
    } );    
    console.log( outputArray );
    

    【讨论】:

      【解决方案4】:

      您还可以使用Array#map 方法方便地执行以下操作:

      result = characterArray.map(function(el) {return el[0]})
      //=> [ '1', '4', '7', '2', '5', '8' ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        • 2021-04-07
        • 2021-10-14
        • 1970-01-01
        • 2018-06-27
        相关资源
        最近更新 更多