9

i have an array as , i need to remove the empty values and replace it with zeros.

i have achieved this much . when i checked the array length is 8 but it shows 2 elements only. What is the best method to replace it with zeros.

var a = [];

a[3] = 5

a[5] = 15

console.log(a.length) // 6

console.log(a) // [empty,empty,empty,5,empty,15] 

how can i make the output as [0,0,0,5,0,15]

// tried this way didn't worked

a.map(o => o !== null ? o : 0)

3 Answers 3

16

One method is to use Array.from, which iterates over each element from 0 to the length of the array (unlike map, which only iterates over properties that are actually on the array)

var a = [];
a[3] = 5
a[5] = 15

a = Array.from(a, item => item || 0);
console.log(a);

If there are possibly non-zero falsey values in the array that you don't want to be replaced with 0, you can do a typeof check:

var a = [];
a[3] = 5
a[2] = null;
a[5] = 15

a = Array.from(a, item => typeof item === 'undefined' ? 0 : item);
console.log(a);

Sign up to request clarification or add additional context in comments.

1 Comment

...map doesnt work because it only iterates over existing properties while Array.from iterates all properties
2

You can use this function to do this and set the value you want to replace with 0,'' or null

function replaceEmptyWith(arr,val) {
  var _arr = [];
  if (arr && arr.length > 0) {
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] === undefined) _arr[i] = val;
      else _arr[i] = arr[i];
    }
    return _arr;
  }
  return arr;
}

var a = [];

a[3] = 5

a[5] = 15

a = replaceEmptyWith(a,0);

Also I found this question which may help you

Comments

0

You can try this,

var a = [];
a[3] = 5
a[2] = null
a[5] = 15

for (var i = 0; i < a.length; i++) {   
    if (a[i] == undefined) {
        a[i] = 0;
    }   
}
console.log(a);

also, You can use Array.prototype.map:

a = a.map(function(val, i) {
    return val === undefined ? 0 : val;
});

1 Comment

The second example with map doesn't work because the function is not invoked for empty elements when using array iteration methods. See developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.