2016-01-15 4 views
0

Я пытаюсь извлечь первый символ из каждого элемента массива в Javascript, поэтому я в конечном итоге извлекаю 1, 4, 7, 2, 5, и 8, но я продолжаю получать «extractElement не функция». Что я делаю неправильно?извлечение первого символа из каждого элемента массива не работает

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); 
    } 
} 
+6

Используйте '<' не '<='. –

ответ

0

Врезка возвращает массив, а не один символ. Вы должны просто использовать 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); 

    } 
} 
0

Он отлично работает для меня, за исключением того, вы должны изменить логику цикла от <= просто <

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

+0

вместо резки, вы можете characterArray [0] [0], characterArray [1] [0] и так далее ... –

+1

Или просто замените 'extractSlicedCharacter = extractElement.slice (0,1);' с помощью 'extractSlicedCharacter.push (extractElement.slice (0,1)); '(и обязательно определите' extractSlicedCharacter' как массив) –

0

@depperm ответ должен решить проблему

другой способ может быть

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

Вы также могли бы сделать ниже, удобно с помощью метода Array#map:

result = characterArray.map(function(el) {return el[0]}) 
//=> [ '1', '4', '7', '2', '5', '8' ] 
Смежные вопросы