小编典典

data.map 不是函数

all

我正在为一个我无法解决的错误而猛烈抨击。我有以下内容;

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


阅读 64

收藏
2022-08-17

共1个答案

小编典典

对象,{}在 JavaScript
中没有方法.map()。它仅适用于Arrays , [].

因此,为了让您的代码工作更改data.map()data.products.map()sinceproducts是一个您可以迭代的数组。

2022-08-17