Sanlex Sandro
Sanlex Sandro

Reputation: 33

Is there a solution to reorganize the following array in javascript?

I want to transform this array ['1','3','+','8','0','/','5','7','0'] into ['13','+','80','/','570']

I tried this:

    let valu = val.value;
    let tab1 = [];
   
   if(!isNaN(valu)) {
       
        tab1.push(valu)   
    }

   else {
       
        tab.push(tab1)
        tab1 = [];
        tab.push(valu)
       
   }

Upvotes: 2

Views: 48

Answers (1)

Nina Scholz
Nina Scholz

Reputation: 386786

You could test if the avtual value has only digits and if the last stored valu has digits, then add the avual value. Otherwise push the value to the result set.

const
    hasDigits = c => /^\d+$/.test(c),
    array = ['1', '3', '+', '8', '0', '/', '5', '7', '0'],
    result = array.reduce((r, v) => {
        if (hasDigits(v) && hasDigits(r[r.length - 1] || '')) r[r.length - 1] += v;
        else r.push(v);
        return r;
    }, []);

console.log(result);

Upvotes: 4

Related Questions