1. 程式人生 > >完成專案的發貨管理心得

完成專案的發貨管理心得

1.建立一個新的包含一個有資料陣列的部分陣列:

let list = [];
 data.map((Item,index) => {
    let daliverylist = JSON.parse(Item.deliverylist)||[];
    let childList = [];
    //建立一個新的陣列儲存當前發貨單號的發貨列表的資料    
    x.sku.forEach(function(x,i) {
        daliverylist.forEach(function(z) {
            if(x.sku===z.sku){      
            childList.push({...x,num:z.num,realGet:z.num})
           }
      }, this
); }, this); list[index] = ({...Item,skuList:childList});})
})

通過比較sku是否相等,建立一個新的childList陣列,裡面存放daliverylist的所有資料,並且加上num和realGet屬性。
最後將資料和索引放在list數組裡。

2.搜尋相應屬性有些需要去重處理

// 客戶搜尋去重處理
 saleData.map((Item,index) =>{
     cnameSearch[Item.cname]=1;
 })
 let newcnameSearch = [];
 for
(var prop in cnameSearch){ newcnameSearch.push({ cnameValue:prop }) }

例如一張發貨單,一個客戶可能有多張發貨單,所以直接獲取表中所有客戶名字再組建陣列會有重複,這時就會有警告,key會有重複。所以需要去重處理,將所有的客戶名字組建一個數組,通過javascript的for…in語句,將所想要的欄位存放在新的數組裡。
JavaScript for...in 語句
for...in 語句用於對陣列或者物件的屬性進行迴圈操作。
for ... in 迴圈中的程式碼每執行一次,就會對陣列的元素或者物件的屬性進行一次操作。

3.