小编典典

data.map不是函数

json

我正在为无法解决的错误而烦恼。我有以下内容;

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":[]括号之前的部分。这是什么让我失望吗?


阅读 417

收藏
2020-07-27

共1个答案

小编典典

对象,{}在JavaScript没有方法.map(),它只是为数组[]

因此,为了使您的代码正常工作,请更改data.map()为,data.products.map()因为products您可以对其进行迭代。

2020-07-27