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

我有一个函数,我试图将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;

                });

        }


尚方宝剑之说
浏览 97回答 2
2回答

慕尼黑的夜晚无繁华

几个问题不存在,类型不存在(它是类型,JS 区分大小写)hmtl += 对象不起作用mcve&nbsp;会像这样有用:const data = [&nbsp; &nbsp; { "Type":"Ford", "Model":"mustang" },&nbsp; &nbsp; { "Type":"Dodge", "Model":"ram" }&nbsp; ]&nbsp;&nbsp;var text = [];data.forEach(function(these) {&nbsp; text.push(these.Type)});document.getElementById('special').textContent = text.join(", ");<div id="special"></div>更多详情:const data = [&nbsp; &nbsp; { "Type":"Ford", "Model":"mustang" },&nbsp; &nbsp; { "Type":"Dodge", "Model":"ram" }&nbsp; ]&nbsp;&nbsp;var html = [];data.forEach(function(these) {&nbsp; html.push(`<li>${these.Type}: ${these.Model}</li>`)});document.getElementById('special').innerHTML = html.join("");<ul id="special"></ul>

慕雪6442864

您正在将一个 JavaScript 对象附加到 html 字符串中,该字符串理论上将计算为 或类似的东西。如果您希望 s 显示在 HTML 本身中,则只需将对象括在引号中,或调用 ,即可。其次,您尝试将对象的键设置为对象本身的引用,但键本身(除非被 s 包围)不会反映局部变量;而是文字字符串本身。"[object Object]"{}JSON.stringify(obj)[]所以这里的“这些”是一个变量名称,试图在JSON键中引用,但作为一个键,它将评估为字符串文字“these”,以解决这些问题,将“这些”括在括号中,JSON.stringify整个事物,或者整个对象在s中并将变量值连接到它,所以要么:"var html = '';data.forEach(function (these) {&nbsp; html += "{ " + these + ": " + res.type + "}"/*or some other string based on */;});或var html = '';data.forEach(function (these) {&nbsp; html += JSON.stringify({ [these]: res.type })/*or some other string based on */;});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript