代码之家  ›  专栏  ›  技术社区  ›  firasKoubaa

Typescript:为数组中的每个对象添加一个autoincrement id属性

  •  0
  • firasKoubaa  · 技术社区  · 6 年前

    myArray = [
            {
                "edoId": "4010",
                "storeName": "ABBEVILLE"
            },
            {
                "edoId": "3650",
                "storeName": "AGEN"
            },
            {
                "edoId": "3298",
                "storeName": "AIX ALLEES PROVENCALES"
            },
            {
                "edoId": "3309",
                "storeName": "AIX JAS DE BOUFFAN"
            },
            {
                "edoId": "3313",
                "storeName": "AIX LA PIOLINE"
            },
            {
                "edoId": "2119",
                "storeName": "AIX LES BAINS"
            },
        ...
        ]
    

    我要自动递增 身份证件 属性,使用forEach(不循环 myArray.length文件 )

    建议?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Rohit Sharma    6 年前

    你可以用 forEach() 问题中的方法:

    myArray.forEach(function(item, index){
        item.id = index;
        // or do whatever you want using index
    });
    

    forEach() 对数组中的每个元素按升序执行一次提供的回调。对于已删除或未初始化的索引属性(即稀疏数组),不会调用它。 回调由三个参数调用:

    1. 元素索引
    2. 正在遍历的数组

    var myArray = [
            {
                "edoId": "4010",
                "storeName": "ABBEVILLE"
            },
            {
                "edoId": "3650",
                "storeName": "AGEN"
            },
            {
                "edoId": "3298",
                "storeName": "AIX ALLEES PROVENCALES"
            },
            {
                "edoId": "3309",
                "storeName": "AIX JAS DE BOUFFAN"
            },
            {
                "edoId": "3313",
                "storeName": "AIX LA PIOLINE"
            },
            {
                "edoId": "2119",
                "storeName": "AIX LES BAINS"
            }
        ];
    
    myArray.forEach(function(item, index){
      item.id = index;
    });
    
    console.log(myArray);
        2
  •  0
  •   Marcelo Rubim    6 年前

    这应该能奏效

    myArray.map(i => ({edoId: ++i.edoId ,storeName: i.storeName }))