使用charAt循环遍历数组以获取javascript中每个值的第一个字母

时间:2014-01-01 01:18:01

标签: javascript arrays charat

我是JS的新手,我正在尝试理解chartAt。我创建了一个问题,我想通过一个数组,并使用charAt从我的数组中拉出每个值的第一个字符。我的代码有点困难。

var myArray = ['adam', 'bianca', 'cat', 'dennis'];
var myFunc = function (letter) {
    for (var i = 0; i < letter.length; i += 1) {
        letter.charAt(0);
        console.log(letter.charAt(0));
    }
}

5 个答案:

答案 0 :(得分:9)

在迭代循环中,letter是传递给函数myFunc()的数组。您需要访问其通过i进行迭代的元素。使用letter[i].charAt(0)代替letter.charAt(0)

var myArray = ['adam', 'bianca', 'cat', 'dennis'];
var myFunc = function (letter) {
    for (var i = 0; i < letter.length; i += 1) {
        // Use the index i here
        console.log(letter[i].charAt(0));
    }
}

// Call your function, passing in the array you defined:
myFunc(myArray);
// a
// b
// c
// d

所以你对String.prototype.charAt()的理解是正确的,但循环迭代是错误的。

答案 1 :(得分:1)

如果你想要做的是遍历数组中的每个元素并获得第一个字母,你需要迭代数组,而不是单词(你称之为letter在你的解决方案中。所以你会有这样的东西:

for( var i=0; i<myArray.length; i++ ) {
    console.log( myArray[i].charAt(0) );
}

或者:

myArray.forEach( function(word){
    console.log( word.charAt(0) );
});

此外,您正在创建一个函数(myFunc),但之后您永远不会实际调用它。

答案 2 :(得分:0)

似乎是正确的,除了你在循环中编码一个常量而不是使用循环变量:

var myArray = ['adam', 'bianca', 'cat', 'dennis'];
var myFunc = function (letter) {
    for (var i = 0; i < letter.length; i += 1) {
        letter.charAt(i);
        console.log(letter.charAt(i));
    }
}


> myFunc(myArray[1])
b VM622:6
i VM622:6
a VM622:6
n VM622:6
c VM622:6
a VM622:6
undefined  

您可能还想打印整个数组:

for (var word in myArray) {
    word = myArray[word];
    console.log("");
    myFunc(word);
} 

答案 3 :(得分:0)

如果你使用jQuery

var myArray = ['adam', 'bianca', 'cat', 'dennis'];
$.each(myArray,function(){console.log(this.charAt(0))});

答案 4 :(得分:0)

如果您使用的是ES6

const myArray = ['adam', 'bianca', 'cat', 'dennis'];
myArray.forEach(myFunc => console.log(myFunc.charAt(0)));

//output
a
b
c
d

如果要将输出放置在数组中

const myArray = ['adam', 'bianca', 'cat', 'dennis'];
const myFunc = myArray.map(name => name.charAt(0));  

console.log(myFunc); 
//output
[ 'a', 'b', 'c', 'd' ]

///在数组上调用.map()时,它使用回调函数的参数并返回一个新数组