Итерирование многомерного объекта с помощью es6 - PullRequest
0 голосов
/ 29 апреля 2018

Существуют ли какие-либо методы для итерации между ключами объекта

var dataSubmit = {
email : {
  value : email,
  rules : 'required email'
},
password : {
  value : password,
  rules : 'required,min:6'
}

};

Я надеялся, что смогу получить к нему доступ как

each (data in dataSubmit) {
 console.log(data.value);
 console.log(data.rules);
}

и получите

 email: {value : email, rules : 'required, email'};

так что я могу

iterator {
  func(email: {value : email, rules : 'required, email'})
}

Мне нужно сохранить объект целиком

Ответы [ 3 ]

0 голосов
/ 29 апреля 2018

Вы почти на месте, используйте для этого оператор for...in - замените each на for.

var dataSubmit = {
  email : {
    value : 'email',
    rules : 'required email'
  },
  password : {
    value : 'password',
    rules : 'required,min:6'
  }
};

for (let key in dataSubmit) {
  console.log(dataSubmit[key]);
}

В качестве альтернативы используйте оператор for...of с Object.values(dataSubmit), который возвращает массив значений

var dataSubmit = {
  email : {
    value : 'email',
    rules : 'required email'
  },
  password : {
    value : 'password',
    rules : 'required,min:6'
  }
};

for (let data of Object.values(dataSubmit)) {
  console.log(data);
}
0 голосов
/ 29 апреля 2018

Вы можете использовать цикл forEach на Object.values.

var dataSubmit = {email: {value: "email",rules: 'required email'},password: {value: "password",rules: 'required,min:6'}};

Object.values(dataSubmit).forEach(o => {
  console.log(o.value);
  console.log(o.rules)
})
0 голосов
/ 29 апреля 2018
for(const data of Object.values(dataSubmit)) 
  console.log(data.value, data.rules);

Просто используйте for..of для значений объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...