我正在为一个我无法解决的错误而苦恼。我有以下内容;
JSON
{"products":
[
{
"product_id" : "123",
"product_data" : {
"image_id" : "1234",
"text" : "foo",
"link" : "bar",
"image_url" : "baz"
}
},{
"product_id" : "456",
"product_data" : {
"image_id" : "1234",
"text" : "foo",
"link" : "bar",
"image_url" : "baz"
}
}
]}
和下面的jQuery
function getData(data) {
this.productID = data.product_id;
this.productData = data.product_data;
this.imageID = data.product_data.image_id;
this.text = data.product_data.text;
this.link = data.product_data.link;
this.imageUrl = data.product_data.image_url;
}
$.getJSON("json/products.json").done(function (data) {
var allProducts = data.map(function (item) {
return new getData(item);
});
});
但我收到一个错误,即 map.data 未定义为函数?看着它,我不知道什么不起作用,因为我已经将它从以前使用的代码复制到了一个新项目中。唯一不同的是 JSON 源。前一个在 [] 括号之前没有 {"products":
部分。这就是让我失望的原因吗?
最佳答案
对象,JavaScript 中的 {}
没有方法 .map()
。仅供Arrays , []
.
因此,为了让您的代码能够正常工作,请将 data.map()
更改为 data.products.map()
,因为 products
是可以迭代的数组。
关于jquery - data.map 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803168/