jquery – data.map不是函数

前端之家收集整理的这篇文章主要介绍了jquery – data.map不是函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在抨击一个错误,我无法解决如何修复.我有以下几点;

JSON

  1. {"products":
  2. [
  3. {
  4. "product_id" : "123","product_data" : {
  5. "image_id" : "1234","text" : "foo","link" : "bar","image_url" : "baz"
  6. }
  7. },{
  8. "product_id" : "456","image_url" : "baz"
  9. }
  10. }
  11. ]}

和以下jQuery

  1. function getData(data) {
  2. this.productID = data.product_id;
  3. this.productData = data.product_data;
  4. this.imageID = data.product_data.image_id;
  5. this.text = data.product_data.text;
  6. this.link = data.product_data.link;
  7. this.imageUrl = data.product_data.image_url;
  8. }
  9.  
  10. $.getJSON("json/products.json").done(function (data) {
  11.  
  12. var allProducts = data.map(function (item) {
  13. return new getData(item);
  14. });
  15. });

但我得到一个错误,map.data未定义为函数?看着它我不知道什么没有工作,因为我已经从以前使用的代码复制到一个新项目.唯一不同的是json源.前一个没有{“产品”:在[]括号之前的部分.这是什么让我失望?

解决方法

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

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

猜你在找的jQuery相关文章