Object.entries() Method
Object.entries() also goes hand in hand with the Object.keys() and Object.values() methods. However, where each of those methods returned an array of keys or values respectively, for each [key, value] pair in an object, Object.entries() will return an array of...well, [key, value]. Let's check it out. Once again I'll be using the same examples from Object.keys() and Object.values().
const person = {name: "Joey",age: 31,occupation: "Web Developer",location: "Austin, Texas",hungry: true,};const objEntries = Object.entries(person);console.log(objEntries);// expected output:// [["name", "Joey"], ["age", 31], ["occupation", "Web Developer"], ["location", "Austin, Texas"], ["hungry", true]]
If Object.values() is the contents of the box, and Object.keys() is the tape that holds the box together, then Object.entries() is the whole box. It gives us a way to iterate over the entire data object, including both keys and values. And it does so in a way that some might find easier to read than a for...in loop.
The above code produces the same result as this for...in loop:
let loopedEntries = [];for (entry in person) {loopedEntries.push([entry, person[entry]]);}console.log(loopedEntries);// expected output:// [["name", "Joey"], ["age", 31], ["occupation", "Web Developer"], ["location", "Austin, Texas"], ["hungry", true]]
As with Object.keys() and Object.values(), one should be on the lookout for numeric keys and the order in which they are output:
const obj = {5: "Giraffe",70: "Octopus",17: "Lion",1: "Armadillo",0: "Puffin",};const objEntries = Object.entries(obj);console.log(objEntries);// expected output:// [["0", "Puffin"], ["1", "Armadillo"], ["5", "Giraffe"], ["17", "Lion"], ["70", "Octopus"]]
And lastly, if you run Object.entries() against a simple array, you get arrays with both the indices and the values:
const colors = ["red", "orange", "yellow", "green", "blue", "violet"];const objEntries = Object.entries(colors);console.log(objEntries);// expected output:// [["0", "red"], ["1", "orange"], ["2", "yellow"], ["3", "green"], ["4", "blue"], ["5", "violet"]]
From MDN: The Object.entries() method returns an array of a given object's own enumerable string-keyed property [key, value] pairs, in the same order as that provided by a for...in loop (the difference being that a for...in loop enumerates properties in the prototype chain as well).
See more examples and documentation here.