欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

JavaScript二维数组的遍历_jQuery dom循环创建例子

程序员文章站 2022-02-14 11:20:29
...

最近在写关于购物车的本地存储的前端技术、这里是关于如何把一个二维数组内部的信息呈现在页面上、一般来说本地存储时、存储的是关于店铺的信息和店铺内部商品的信息.本地存储时把数组转换成Json串存储的、这里为了方便是直接创建的一个二维数组

var product = [
  {
    "shopId": 100,
    "shopNm": "红石榴",
    "productList": [
      {
        "goodsId": 1,
        "goodsNm": "苹果7",
        "goodsNum": "1"
      }
    ]
  },
  {
    "shopId": 101,
    "shopNm": "红苹果",
    "productList": [
      {
        "goodsId": 2,
        "goodsNm": "苹果5",
        "goodsNum": "2"
      },
      {
        "goodsId": 3,
        "goodsNm": "苹果6",
        "goodsNum": "2"
      }
    ]
  },
  {
    "shopId": 101,
    "shopNm": "红苹果",
    "productList": [
      {
        "goodsId": 2,
        "goodsNm": "苹果5",
        "goodsNum": "2"
      },
      {
        "goodsId": 3,
        "goodsNm": "苹果6",
        "goodsNum": "2"
      },
      {
        "goodsId": 2,
        "goodsNm": "华为",
        "goodsNum": "2"
      },
      {
        "goodsId": 2,
        "goodsNm": "小米",
        "goodsNum": "2"
      }
    ]
  }
]


定义了一个商品信息列表、内部不同的商店、不同商品、数组内部是对象、一个对象对应一个店铺、店铺内部有商品信息、若是有不同商品会添加到productList内部、现在关键是循环添加、信息.先在页面内部给商品布局、然后创建

for (var i = 0; i < product.length; i  ) {
    var dom = ´<div class="shop"><div class="shop_top"><div class="shop_name">商店名称:´ product[i].shopNm ´</div></div></div>´;
    $(´body´).append(dom);
    for (var j = 0; j < product[i].productList.length; j  ) {
    var list = ´<div class="shop_center"><div class="goods_name">商品名称:´ product[i].productList[j].goodsNm ´</div><div class="goods_num">商品数量:´ product[i].productList[j].goodsNum ´</div></div>´;
    $(´.shop´).eq(i).append(list); 
    }
}


这个是循环创建的两层for循环、值得提出的是、因为是二维数组、所以这里可以说是添加了两次!第一层循环的时候、先把所有的商店信息添加、然后第二层for循环添加商店内部的商品信息、有人可能要问、为什么不都在第二层循环添加

如果是都在第二个for循环添加的话、那么就是一个商店和一个商品呈现出来、也就是说、同个商店下的商品不会合并在该商店下面

这里用到eq()方法、他的目的是只将对应商品放到对应商店下面、这里只是简单的呈现、最后关于html代码部分是这样的

<div class="shop">
    <div class="shop_top">
        <div class="shop_name">商店名称</div>
    </div>
    <div class="shop_center">
        <div class="goods_name">商品名称</div>
        <div class="goods_num">商品数量</div>
    </div>
</div>


这样就可以把一个二维数组内部的的信息用JQuery来动态添加到页面上、同理、也可以添加三维数组的信息