Reputation: 445
I am new to JS and am trying to understand chartAt. I created a problem where I want to go through an array and pull the first character of each value from my array using charAt. I'm a bit stuck with my code.
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));
}
}
Upvotes: 2
Views: 30327
Reputation: 1
If you are using ES6
const myArray = ['adam', 'bianca', 'cat', 'dennis'];
myArray.forEach(myFunc => console.log(myFunc.charAt(0)));
//output
a
b
c
d
If you want to put the output in an array
const myArray = ['adam', 'bianca', 'cat', 'dennis'];
const myFunc = myArray.map(name => name.charAt(0));
console.log(myFunc);
//output
[ 'a', 'b', 'c', 'd' ]
// When .map() is called on an array, it takes an argument of a callback function and returns a new array
Upvotes: 0
Reputation: 813
if you using jQuery
var myArray = ['adam', 'bianca', 'cat', 'dennis'];
$.each(myArray,function(){console.log(this.charAt(0))});
Upvotes: 0
Reputation: 4314
Seems about right, except that you coded a constant in your loop instead of using the loop variable:
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
You might also want to print out the whole array:
for (var word in myArray) {
word = myArray[word];
console.log("");
myFunc(word);
}
Upvotes: 0
Reputation: 27282
If what you want to do is go through each element in the array and get the first letter, you need to iterate over the array, not the word (which you call letter
in your solution. So you would have something like this:
for( var i=0; i<myArray.length; i++ ) {
console.log( myArray[i].charAt(0) );
}
Or:
myArray.forEach( function(word){
console.log( word.charAt(0) );
});
Also, you're creating a function (myFunc
), but then you're never actually invoking it.
Upvotes: 1
Reputation: 270617
In your iteration loop, letter
is the array passed to the function myFunc()
. You need to access its elements, which you're iterating via i
. Use letter[i].charAt(0)
instead of 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
So your understanding of String.prototype.charAt()
is correct, but the loop iteration was faulty.
Upvotes: 10