JS: Difference of Array vs Array-Like Object

By Xah Lee. Date: . Last updated: .

Difference between array and array-like object

// create a array-like object
const xalike = { 0: "a", 1: "b", length: 2 };

// add an element
xalike[2] = "c";

// length is 3 if true array
console.assert(
 xalike.length === 2,
);

console.assert(
 Array.isArray(xalike) === false,
);

// parent is not Array.prototype
console.assert(
 Reflect.getPrototypeOf(xalike) === Object.prototype,
);

// s------------------------------

// real array
let xx = ["a", "b"];
xx[2] = "c";

console.assert(
 xx.length === 3,
);

console.assert(
 Array.isArray(xx),
);

console.assert(
 Reflect.getPrototypeOf(xx) === Array.prototype,
);