Home > Back-end >  Difference between not initialized and undefined value
Difference between not initialized and undefined value

Time:06-21

let a = Array(3);
a[0] = 1;
a[1] = undefined;

function test(arr) {
  return arr.map(a => !!a);
}

console.log('before', a); // [1, undefined, undefined]
console.log('after', test(a)); // [true, false, undefined]

How can I check if array element is initialized as undefined (a[1]) or not initialized (a[2])? a[2] has empty value, but browser converts it to undefined.

CodePudding user response:

You can use hasOwnProperty with the index.
When no value at the index is set, hasOwnProperty returns false:

const a = Array(3);
a[1] = undefined;

console.log(a.hasOwnProperty(0));
console.log(a.hasOwnProperty(1));
console.log(a.hasOwnProperty(2));

in works as well:

const a = Array(3);
a[1] = undefined;

console.log(0 in a);
console.log(1 in a);
console.log(2 in a);

  • Related