## Simple ways:

``````var arr = [1,2,,3,,-3,null,,0,,undefined,4,,4,,5,,6,,,,];

arr.filter(n => n)
// [1, 2, 3, -3, 4, 4, 5, 6]

arr.filter(Number)
// [1, 2, 3, -3, 4, 4, 5, 6]

arr.filter(Boolean)
// [1, 2, 3, -3, 4, 4, 5, 6]``````

or - (only for single array items of type "text")

``````['','1','2',3,,'4',,undefined,,,'5'].join('').split('');
// output:  ["1","2","3","4","5"]``````

or - Classic way: simple iteration

``````var arr = [1,2,null, undefined,3,,3,,,0,,,[],,{},,5,,6,,,,],
len = arr.length, i;

for(i = 0; i < len; i++ )
arr[i] && arr.push(arr[i]);  // copy non-empty values to the end of the array

arr.splice(0 , len);  // cut the array and leave only the non-empty values

arr // [1,2,3,3,[],Object{},5,6]``````

## via jQuery:

``````var arr = [1,2,,3,,3,,,0,,,4,,4,,5,,6,,,,];

arr = \$.grep(arr,function(n){ return n == 0 || n });

arr // [1, 2, 3, 3, 0, 4, 4, 5, 6]``````

## UPDATE - just another fast, cool way (using ES6):

``````var arr = [1,2,null, undefined,3,,3,,,0,,,4,,4,,5,,6,,,,],
temp = [];

for(let i of arr)
i && temp.push(i); // copy each non-empty value to the 'temp' array

arr = temp;

arr // [1, 2, 3, 3, 4, 4, 5, 6]``````

### Remove empty values

``````['foo', '',,,'',,null, ' ', 3, true, [], [1], {}, undefined, ()=>{}].filter(String)

// ["foo", null, " ", 3, true, [1], Object {}, undefined, ()=>{}]``````