Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Separating strings by a char after join method

So I am just messing around with functions and creating my own to make sure I understand concepts better. I wrote out this one below and it seems to be almost there, however I have one issue.

function strAdd() {
    let strResult = '';
    let numResult = 0;
    for (let i=0; i < arguments.length; i++) {
        if (typeof arguments[i] ===  'string') {
            let args = Array.prototype.slice.call(arguments[i])
            strResult += args.join("");
        } else if (typeof arguments[i] === 'number') {
            numResult += arguments[i];
        }
      
    }
  return console.log(`this string says ${strResult} and the numbers add up to ${numResult}`);
}

When ever I print out the the strings, they are still being logged out as one string as opposed to separate strings so

strAdd('here', 10, 'are', 10, 2, 'the', 35, 'strings')

Gives me

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

this string says herearethestrings and the numbers add up to 57

Whenever I try adding different chars into the join method, all it does is separates the chars within each string by the specified char and not the string itself.
So

strResult += args.join(" ");

would give me

this string says h e r ea r et h es t r i n g s and the numbers add up to 57

instead of splitting up the chars. I notice how the strings are still being joined too. Any thoughts on how I can refactor this code?

>Solution :

If you wish for output such as "here are the strings" (and even if not) you should understand the different parameters. Arrays and Strings have a lot in common but they are different types. When you split or convert to array (slice) or join you might change from one type to another. But no worries. you can always join("") or split("") to swap from one to another.

function strAdd() {
  var arr_string_arguments = []
  let numResult = 0;
  for (let i = 0; i < arguments.length; i++) {
    if (typeof arguments[i] === 'string') {
      var str = arguments[i]
      arr_string_arguments.push(str)
    } else if (typeof arguments[i] === 'number') {
      numResult += arguments[i];
    }
  }
  var strResult = arr_string_arguments.join(" ");
  
  return console.log(`this string says "${strResult}" and the numbers add up to ${numResult}`);
}

strAdd('here', 10, 'are', 10, 2, 'the', 35, 'strings')
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading