为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的函数不返回我想要的 JSON 数组项?

为什么我的函数不返回我想要的 JSON 数组项?

尚方宝剑之说 2022-08-27 09:39:34
我有一个函数,我试图将json文件的一些内容放入元素中。我从后端的函数接收此数组。我的函数打印出相同数量的对象,但不会打印出我尝试抓取的特定项目。控制台日志打印出阵列刚刚好,所以我知道该部分正在工作。JSON 数组示例 [    { "Type":"Ford", "Model":"mustang" },    { "Type":"Dodge", "Model":"ram" }  ]断续器<p id="special"></p>断续器myMethod: function () {            var res = this;            fetch('/cont/function', {                method: 'POST',                headers: { 'Content-Type': 'application/json' }            })                .then(function (response) {                    return response.json();                })                .then(function (data) {                    res.type = data.Type;                    console.log(data);                    var html = '';                    data.forEach(function (these) {                        html += { these: res.type };                    });                    document.getElementById('special').innerHTML = html;                });        }
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

几个问题

  • 不存在,

  • 类型不存在(它是类型,JS 区分大小写)

  • hmtl += 对象不起作用

mcve 会像这样有用:

const data = [

    { "Type":"Ford", "Model":"mustang" },

    { "Type":"Dodge", "Model":"ram" }

  ]

  

var text = [];

data.forEach(function(these) {

  text.push(these.Type)

});

document.getElementById('special').textContent = text.join(", ");

<div id="special"></div>


更多详情:


const data = [

    { "Type":"Ford", "Model":"mustang" },

    { "Type":"Dodge", "Model":"ram" }

  ]

  

var html = [];

data.forEach(function(these) {

  html.push(`<li>${these.Type}: ${these.Model}</li>`)

});

document.getElementById('special').innerHTML = html.join("");

<ul id="special"></ul>


查看完整回答
反对 回复 2022-08-27
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您正在将一个 JavaScript 对象附加到 html 字符串中,该字符串理论上将计算为 或类似的东西。如果您希望 s 显示在 HTML 本身中,则只需将对象括在引号中,或调用 ,即可。其次,您尝试将对象的键设置为对象本身的引用,但键本身(除非被 s 包围)不会反映局部变量;而是文字字符串本身。"[object Object]"{}JSON.stringify(obj)[]


所以这里的“这些”是一个变量名称,试图在JSON键中引用,但作为一个键,它将评估为字符串文字“these”,以解决这些问题,将“这些”括在括号中,JSON.stringify整个事物,或者整个对象在s中并将变量值连接到它,所以要么:"


var html = '';

data.forEach(function (these) {

  html += "{ " + these + ": " + res.type + "}"/*or some other string based on */;

});


var html = '';

data.forEach(function (these) {

  html += JSON.stringify({ [these]: res.type })/*or some other string based on */;

});


查看完整回答
反对 回复 2022-08-27
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信