完成專案的發貨管理心得
阿新 • • 發佈:2018-12-06
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.