Function with array as parameter

Hi everyone,

I am trying to write a function which takes an array and returns a new array with the number of characters in each string from the original array, but it is not working.

Only the number of characters of the first string is returned. I am almost sure that this is because the parameter suggests that there is only parameter, rather than an array of parameters, but I am not sure how this should be represented as this is how the original problem was set up and presented to me. I hope someone knows what I mean (!). I am still pretty new to this, so sorry if it seems like it should be obvious…

Could someone offer help?

function sortByLength(array) {
  let i;
  let tempArray = [];
  for (i = 0; i < array.length; i++) {
    tempArray.push(array[i]).length;
  }
  return tempArray;
}

what do you want the length of?

I want to push the lengths of each string in the original array into the new array…

e.g. [‘dog’, ‘cat’, 'mouse} —> [3, 3, 5]

without push, how do you get the length of array[i]?

function sortByLength(array) {
 return array.map(item => item.length).sort();
}

Not sure if you actually want the sorting in the end, but based it on your function name

is it ‘array[i].length’?

exactly, so if you want to push that, you want to put that all as an argument for push, look at your code

ok, thank you. This is now pushing a result I also did not expect:

it’s returning the number of characters at array[0], followed by say [1,1,1,1,1] of the length of array[0] is five…

any ideas?

show your code 

function sortByLength(array) {
  let i;
  let tempArray = [];
  for (i = 0; i < array.length; i++) {
    tempArray.push(array[i].length);
  }
  return tempArray;
}

console.log(sortByLength("dfdww", "scvx"));

You aren’t passing an array to your function

I am thinking the way the parameter is written may be a problem?

Not in array format?

yes, sorry. I am trying to solve a problem that was presented to me in this way, so I assumed (wrongly) that the parameter format was correct. Just need to figure out how to set an array as the parameter in a function then…I will try to find out

Ah, so the calling convention is given to you?

Take a look at this

yes, it’s given, so I presumed it should be left as is…

thanks for the link, I will take a read and see if I can fix it…