Array's are 0 indexed in JavaScript
All of these questions are answered pretty simply. Array.from assumes that the array-like object you're giving it is zero-indexed. If it isn't you'll get an array that is zero-indexed with all elements that aren't set, including 0 set to undefined. So in your example,
const arrayLike = { 1:'foo', 2:'bar', length:2 };
Array.from(arrayLike);
Is essentially the same as,
const arrayLike = { 0:undefined, 1:'foo', 2:'bar', length:2 };
Array.from(arrayLike);
Because the length is less than the max elements, it essentially stops iterating at that point and the false-length functions as a truncation. What you want is likely,
const arrayLike = { 0:'foo', 1:'bar', length:2 };
Array.from(arrayLike);
Or if you're getting the Array-like from a source that is 1-indexed, set length appropriately so as not to lose the last element, and then ditch the first element from the result (the equivalent of shift).
const arrayLike = { 1:'foo', 2:'bar', length:3 };
let arr = Array.from(arrayLike).splice(1);
let arr = Array.from(arrayLike);
arr.shift();
let [, ...arr] = Array.from(arrayLike);