与JSON

时间:2017-05-22 15:48:33

标签: javascript arrays angular object

我有一个Laravel后端通过Validator返回一些错误。这些错误通过angular发出的HTTP响应传递,并以JSON格式返回。

对象的结构如下所示:

name对象有一个值,这是我之后的实际消息。

目前,使用循环等,我只能将数组的名称(name)作为字符串...

我有时会在这个错误对象中获得多个数组,而且我不会总是知道它们的名字,那么我怎样才能在循环中检索每个数组中的0-index值?

感谢您的帮助。

<小时/> 编辑#1

像这样循环:

for(var err in res.data.errors){
    console.log(Object.err[0][0]);
}

给了我一个Cannot get [0] index of undefined

1 个答案:

答案 0 :(得分:0)

这个怎么样:

let errors = Object.values(response.data.errors);
// errors is now an array of arrays containing the validation errors
errors.forEach( (errorArray) => {
  console.log(errorArray[0]);
} );

另一种方法是使用Object.keys()而不是值。这类似于您已经尝试过的,您将错误属性的名称作为字符串,然后使用它来访问每个错误数组:

let keys = Object.keys(response.data.errors);
keys.forEach( (errorKey) => {
  console.log('error type', errorKey);
  let errorArray = response.data.errors[errorKey];
  console.log(errorArray[0]);
} );