如何通过mysqljs在JavaScript中访问数据库返回数组的元素
解决方法:正确访问返回数据中的数组元素
嘿,我明白你的问题啦!你拿到的返回数据并不是一个直接的数组,而是一个包含数组的对象,这就是你之前用data[1].buttonName取不到值的原因。
先帮你拆解下返回的数据结构:
{ "Success": true, "Result": [{ "buttonName": "90p" }, { "buttonName": "£1.90" }, { "buttonName": "£4.90" }] }
这里的data是一个顶层对象,它有两个属性:
Success:表示请求是否成功的布尔值Result:这才是你要操作的按钮名称数组
正确的访问方式
要获取数组里的单个元素,你需要先通过data.Result拿到这个数组,再用索引访问对应元素:
// 获取第一个按钮名称 const firstButton = data.Result[0].buttonName; // 输出:"90p" // 获取第二个按钮名称 const secondButton = data.Result[1].buttonName; // 输出:"£1.90" // 获取第三个按钮名称 const thirdButton = data.Result[2].buttonName; // 输出:"£4.90"
遍历整个数组的示例
如果要批量处理所有按钮名称,推荐用数组的遍历方法,比如forEach:
// 遍历Result数组 data.Result.forEach((buttonItem, index) => { console.log(`第${index+1}个按钮:${buttonItem.buttonName}`); // 也可以把内容渲染到页面上,比如替换之前的innerHTML: document.getElementById("output").innerHTML += `<div>按钮${index+1}:${buttonItem.buttonName}</div>`; });
为什么之前的写法无效?
你之前尝试的data[1].buttonName,是把data当成了数组去用索引访问,但data本质是对象,对象没有数字索引的属性,只有Success和Result这两个键,所以data[1]会返回undefined,自然无法访问buttonName啦。
内容的提问来源于stack exchange,提问作者Steven Helliwell
相关产品推荐
相关产品推荐

