Search code examples
javascriptarraysmappingtrim

Using trim more than once in an array JS


I have a snippet of code where I am trying to parse a longer string with special characters into an array with no spaces or special characters.
input: name: this is some stuff, name2: this is more stuff
desired output: [name,this is some stuff,name2,this is more stuff]
current output: z.trim isn't a function

function parseOrder(custOrder) {
  const custOrderArr = custOrder.split(','); 
  const trimedArr = custOrderArr.map((x) => x.trim());
  const numberArr = trimedArr.map((y) => y.split(':'));
  const processArr = numberArr.map((z) => z.trim());
  console.log(processArr);
}

Why does trim work the first time and not the second?


Solution

  • You can not trim an array. But you could map the array and trim the values.

    This result features Array#flatMap for preventing arrays with pairs.

    function parseOrder(custOrder) {
        return custOrder
            .split(',')
            .flatMap(y => y.split(':').map(x => x.trim()));
    }
    
    
    var input = 'name: this is some stuff, name2: this is more stuff ';
    
    console.log(parseOrder(input));