indexing in an array of an objects javascript code example

Example 1: javascript indexOf object value in array

// Get index of object with specific value in array
const needle = 3; // needle
const haystack = [{ id: 1 }, { id: 2 }, { id: 3 }]; // haystack
const index = haystack.findIndex(item => item.id === needle);

Example 2: using index of on array of objects

arr = [{x: "a", y: 1}, {x: "something", y: 2}]
arr.findIndex(obj => obj.x === "a" && obj.y === 1);

Example 3: array from js

//Array.from() lets you create Arrays from array-like objects
//(objects with a length property and indexed elements);
//and also:

//More clearly, Array.from(obj, mapFn, thisArg)
//has the same result as Array.from(obj).map(mapFn, thisArg), 
//except that it does not create an intermediate array.
//Basically, it's a declaration that overrides the length property of the method
//(so that it has to be used with the same name length),
//setting it with the same value of the given variable. 
//The values are still undefined, it's just a different notation. Take a look:

console.log(Array.from(length, (_,i) => i));
// It doesn't works with non-iterables
// In this case we are passing an integer

console.log(Array.from({LENGTH}, (_,i) => i));
// It doesn't work with a property name different from "length"

console.log(Array.from({length}, (_,i) => i));
// It works because overrides the .length property of the array
// The method Array.from() assumes that the property...
// ...is referring to an iterable (also if not declared) 

console.log(Array.from(Array(length), (_,i) => i));
// This is the demonstration of the above assertion
// In this case we are using a declared array through...
// ...an instance of the straight method Array()...
// ...that accepts an integer as value

//in case any one reads this a got this from er0s in edabit