使用charAt循环数组以获取javascript中每个值的首字母

Posted

技术标签:

【中文标题】使用charAt循环数组以获取javascript中每个值的首字母【英文标题】:loop over array using charAt to get first letter of each value in javascript 【发布时间】:2014-01-18 19:52:56 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

感谢您的信息,非常感谢! :) .prototype 是什么意思?我在其他人那里看到过,但不清楚它是什么以及何时应该使用它。 看看developer.mozilla.org/en-US/docs/Web/javascript/Guide/… JavaScript 对象继承不像许多其他语言那样作用于类,而是由对象类型的所有实例共享的原型方法。 @jstone 这里也有一些好东西:***.com/questions/572897/…【参考方案2】:

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

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

或者:

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

此外,您正在创建一个函数 (myFunc),但实际上您从未真正调用它。

【讨论】:

【参考方案3】:

似乎是对的,只是你在循环中编写了一个常量而不是使用循环变量:

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

【讨论】:

【参考方案4】:

如果你使用 jQuery

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

【讨论】:

【参考方案5】:

如果你使用的是 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()时,它接受一个回调函数的参数并返回一个新数组

【讨论】:

以上是关于使用charAt循环数组以获取javascript中每个值的首字母的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript问题清单与经验

JavaScript问题清单与经验

JavaScript 使用 CharAt 从输入文本中获取

JS如何遍历字符串

使用 javascript 和循环获取所有正文元素

无法从从 sql 数据库读取的 javascript 函数中获取返回数组 [重复]