对迭代嵌套对象感到困惑
Confused about iterating nested objects
所以我有以下对象:
{ err:
{ message: 'Validation failed',
name: 'ValidationError',
errors:
{ username:
{ properties: [Object],
message: 'Path `username` is required.',
name: 'ValidatorError',
kind: 'required',
path: 'username',
value: '' } } } }
我正在尝试对err.errors
进行迭代,并将例如err.errors.username.message
推送到一个数组中:
for(var error in err.errors){
messages.push(error.message);
}
这样做只是将null推送到我的messages
数组中。所以为了排除故障,我尝试了console.log(typeof error);
,它给了我一个string
。这是令人困惑的,因为当我在err.errors.username
上调用typeof
时,它会输出object
,但在循环内部调用它会产生string
。。。
那么这里发生了什么?
您正在从
will return
密钥->
用户名hence you need to access that key from object and then
消息from that
用户名`object中的object which is another
对象.
错误in
访问key
。
试试这个:
var obj = {
err: {
message: 'Validation failed',
name: 'ValidationError',
errors: {
username: {
properties: [Object],
message: 'Path `username` is required.',
name: 'ValidatorError',
kind: 'required',
path: 'username',
value: ''
},
password: {
properties: [Object],
message: 'Path `password` is required.',
name: 'ValidatorError',
kind: 'required',
path: 'password',
value: ''
}
}
}
};
var messages = [];
for (var error in obj.err.errors) {
messages.push(obj.err.errors[error].message);
}
alert(messages);
Fiddle here
这里的问题for in
会给你密钥而不是数据尝试for of
或err.errors[error]
尝试迭代obj.err.errors.username
var messages = [];
var obj = {
err: {
message: 'Validation failed',
name: 'ValidationError',
errors: {
username: {
properties: [Object],
message: 'Path `username` is required.',
name: 'ValidatorError',
kind: 'required',
path: 'username',
value: ''
}
}
}
}
for (var error in obj.err.errors.username) {
if (error === "message")
messages.push(obj.err.errors.username[error])
}
console.log(messages)
相关文章:
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用对象通过JSON进行迭代
- 基于使用angular在下拉列表中选择的对象,迭代对象内部的对象
- 如何在我传递给视图的ViewModel集合中获得jQuery可选对象的值,以作为有序列表进行迭代
- 如何使用其他地方指定的访问信息访问嵌套的json对象,而不使用eval或迭代
- JavaScript1.7区分数组和对象的迭代程序
- 为什么数组在对象内部迭代对象时存储重复值
- JS对象->来自jquery ajax的JSON提交->php迭代
- 在对象上迭代.解构其键和属性并添加新的键和属性
- 对数组中的json对象进行迭代
- 如何迭代json对象结构以只获取名称
- 在对象上迭代以验证它是否's键存在于数组中
- Javascript - 从对象迭代和删除
- 如何使用Meteor.js中的Template辅助对象迭代对象中的两个数组
- 我的 JS 对象迭代在添加新属性时中断
- 对象迭代语法
- 反向对象迭代(javascript)
- chrome为对象迭代器显示了什么?
- JavaScript对象迭代