gpt4 book ai didi

Javascript 处理来自 ajax 请求的不同响应,并且 response.length = undefined

转载 作者:行者123 更新时间:2023-11-30 14:08:50 25 4
gpt4 key购买 nike

我有一个返回 json 的 ajax 请求。如果有一条记录,它会返回:

{"key":"我的值 1"}

如果返回的记录不止一条,则它是一个对象数组:

[{"key":"我的值(value) 1"},{"key":"我的值(value) 2"}]

我很想有一个循环来处理 1 个或多个返回的对象,但是当我只返回一个对象时,response.length 是未定义的:

      console.log(typeof response); //Object
console.log(response.length); //undefined

row = '';
Object.values(response).forEach(function(val) {
row += '<tr><td>' + val + '</td></tr>';
});

问题是 response.length 未定义,但返回了一条记录。我会想,如果返回一个对象,那么长度将是 1?如何测试单个对象并处理多个对象?我在想一定有一种简单/灵活的方法来做到这一点?

最佳答案

最好在服务器上修复。如果不可能,做

response = response.length?response:[response];

例如

let response = {"key":"My Value 1"}
response = response.length?response:[response]; // force array if no length
tb.innerHTML = response.map((obj) => '<tr><td>' + obj["key"] + '</td></tr>')
.join("")


response = [
{"key":"My Value 2"},
{"key":"My Value 3"}
];
response = response.length?response:[response]; // force array if no length
//console.log(response)
tb.innerHTML += response.map((obj) => '<tr><td>' + obj["key"] + '</td></tr>')
.join("");
<table>
<tbody id="tb"></tbody>
</table>

关于Javascript 处理来自 ajax 请求的不同响应,并且 response.length = undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com