DjBillje Official
DjBillje Official

Reputation: 386

How to print values of nested object in javascript

This is my code...

var object = {
  person1: {
    userName: person1,
    passWord: password1
  }
  person2: {
    userName: person2,
    passWord: password2
  }
  person3: {
    userName: person3,
    passWord: password3
  }
}

And I want to print all the userName of each person.

expected output...

person1
person2
person3

Upvotes: 1

Views: 775

Answers (3)

symlink
symlink

Reputation: 12209

let object = {
  person1: {
    userName: 'person1',
    passWord: 'password1'
  },
  person2: {
    userName: 'person2',
    passWord: 'password2'
  },
  person3: {
    userName: 'person3',
    passWord: 'password3'
  }
}

for (const [key, val] of Object.entries(object)) {
  console.log(object[key].userName);
}

Upvotes: 0

Robin
Robin

Reputation: 5427

To work your code properly, you need to change couple of things. Values of userName & password should set as String since person1, person2, person3, password1, password2, password3 is undefined here.

var object = {
  person1: {
    userName: "person1",
    passWord: "password1"
  },
  person2: {
    userName: "person2",
    passWord: "password2"
  },
  person3: {
    userName: "person3",
    passWord: "password3"
  }
}

for(let person in object) {
  console.log(object[person]['userName'])
}

Upvotes: 0

hgb123
hgb123

Reputation: 14891

You could iterate through the object values with Object.values() and print out the userName

const object = {
  person1: {
    userName: "person1",
    passWord: "password1",
  },
  person2: {
    userName: "person2",
    passWord: "password2",
  },
  person3: {
    userName: "person3",
    passWord: "password3",
  },
}

Object.values(object).forEach((value) => {
  console.log(value.userName)
})

Upvotes: 1

Related Questions