我正在尝试用JavaScript来完成我用jQuery做的事情,以便对API响应进行错误处理。
我在jQuery中编写了这段代码,它完成了我想要的(不同的项目):
var response = e.responseJSON;
$.each(response.errors, function(index, value){
var div = $("#error_" + index);
div.html(value[0]).addClass('error');
});
然后我尝试将代码转换为JavaScript而不是jQuery,但我似乎遇到了像数组转换到数组这样的对象的问题。对于e.forEach
循环。
我目前的代码是:
.catch(function(response){
let e = Object.values(response.response.data)
let data = Array.from(e[1])
console.log(e)
console.log(data)
});
当我记录data
时,它返回一个空数组。记录e
时返回像数组一样的对象。
我想我正在寻找的是,我做错了什么,是否有更好的方式来实现我想要实现的目标?
答案 0 :(得分:1)
e[1]
是一个非类数组的对象,所以Array.from(e[1])
并没有多大意义。我想你想要的是:
let e = Object.values(response.response.data);
for (var index in e[1]) {
var div = document.getElementById('error_' + index);
div.innerHTML = e[1][index][0];
div.classList.add("error");
}
答案 1 :(得分:0)
var response = {"error1": "my error", "error2": "another error"}
example(response)
function example(response) {
Object.keys(response).map(function(key) {
console.log(key)
console.log(response[key])
})
}