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

Javascript 为什么我的函数不返回我想要的JSON数组项?,javascript,json,Javascript,Json,我有一个函数,试图将json文件的一些内容放入元素中。我从后端的函数接收此数组。我的函数输出相同数量的对象,但不是我试图获取的特定项。控制台日志很好地打印出了阵列,因此我知道该部分正在工作 JSON数组示例 [ { "Type":"Ford", "Model":"mustang" }, { "Type":"Dodge", "Model":"ram" } ] HTML 几个问题 他们不存在 类型不存在(它是类型,JS区分大小写) hmtl+=对象不工作 A应该是这样有用

我有一个函数,试图将json文件的一些内容放入元素中。我从后端的函数接收此数组。我的函数输出相同数量的对象,但不是我试图获取的特定项。控制台日志很好地打印出了阵列,因此我知道该部分正在工作

JSON数组示例

 [
    { "Type":"Ford", "Model":"mustang" },
    { "Type":"Dodge", "Model":"ram" }
  ]
HTML

几个问题

  • 他们不存在
  • 类型不存在(它是类型,JS区分大小写)
  • hmtl+=对象不工作
A应该是这样有用的:

const数据=[
{“类型”:“福特”,“车型”:“野马”},
{“类型”:“道奇”,“模型”:“ram”}
]
var text=[];
data.forEach(函数(这些){
text.push(这些.Type)
});
document.getElementById('special').textContent=text.join(“,”)

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

因此,这里的“this”是一个试图在JSON键中引用的变量名,但作为键,它将计算为字符串文字“this”,要解决这些问题,请将“this”括在括号和JSON中。将整个内容或整个对象字符串化为
s并将变量值指定给它,因此:

var html = '';
data.forEach(function (these) {
  html += "{ " + these + ": " + res.type + "}"/*or some other string based on */;
});


JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。`html+={}“你把一个对象分配给一个变量,你会认为它是一个字符串<数据>代码>是一个数组,所以<代码>数据>类型<代码>是未定义的。在<代码>前缀循环中,<代码> > <代码>是一个对象(数组中的每个对象),所以<代码> HTML+{{:RES.Type }
没有任何意义。在HTML字符串中,您正在添加一个键为对象且值未定义的对象。返回是什么意思?函数中没有返回方法。函数只是附加到HTML。它是否附加?@pc\u coder它没有附加到HTML。它只是打印[对象,对象]在相同长度的数组中…但是
this===={“Type”:“Ford”,“Model”:“mustang”}
,所以,
{[this]:res.Type}
没有意义。此外,
res
是未定义的。将其字符串化,您仍然会得到一些废话。非常感谢您的输入!
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;
                });
        }
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 */;
});