Move zeroes in array using ES6 features

  • A+
Category:Languages

I’m new to ES6, trying to make a function that moves all zeros in the array in the last position of the array while preserving the original order of the array E.g. [1,0,0,0,2,3,4,5] => [1,2,3,4,5,0,0,0]

 function moveZeros (arr) {   let zeroArr = [];     for(let i = 0;i < arr.length;i++) {     if (arr[i] == 0) {      zeroArr.push(arr[i]);      arr.splice(i, 1);     }   }   arr.push(...zeroArr);   return arr; }  

This is my code its works fine, but I think this can be shorter more in using some ES6 features. Can someone provide a better solution

 


That can be solved easily using filter function and spread operator, .

const moveZeros = arr => {   const z = arr.filter(a => a === 0); // get all zeroes   const nZ = arr.filter(a => a !== 0); // get all non zeroes   return [...nZ, ...z]; // put the zeroes on the last position }; 

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: