2

我是 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));
    }
}
4

5 回答 5

10

在您的迭代循环中,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()是正确的,但是循环迭代是错误的。

于 2014-01-01T01:21:44.930 回答
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),但实际上您从未真正调用它。

于 2014-01-01T01:22:18.820 回答
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);
} 
于 2014-01-01T01:23:16.843 回答
0

如果你使用 jQuery

var myArray = ['adam', 'bianca', 'cat', 'dennis'];
$.each(myArray,function(){console.log(this.charAt(0))});
于 2014-01-01T01:34:34.220 回答
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() 时,它接受回调函数的参数并返回一个新数组

于 2019-12-10T05:18:24.817 回答