依照一個(gè)存著新進(jìn)貨物的二維數(shù)組,更新存著現(xiàn)有庫(kù)存(在 arr1 中)的二維數(shù)組. 如果貨物已存在則更新數(shù)量 . 如果沒(méi)有對(duì)應(yīng)貨物則把其加入到數(shù)組中巡蘸,更新最新的數(shù)量. 返回當(dāng)前的庫(kù)存數(shù)組,且按貨物名稱的字母順序排列.
對(duì)于二維數(shù)組排序問(wèn)題擂送,可以變換成一維數(shù)組排序來(lái)解決悦荒。
function updateInventory(arr1, arr2) {
// 請(qǐng)保證你的代碼考慮到所有情況
var curInv = {};
var newInv = {};
// 把現(xiàn)有庫(kù)存的二維數(shù)組轉(zhuǎn)換成庫(kù)存對(duì)象
arr1.forEach(function(item, arr) {
curInv[item[1]] = item[0];
});
// 把新建貨物的二維數(shù)組轉(zhuǎn)換成庫(kù)存對(duì)象
arr2.forEach(function(item, arr) {
newInv[item[1]] = item[0];
});
// 歸并貨物品類及數(shù)量
for (var key in newInv) {
if(curInv[key]) {
curInv[key] += newInv[key];
} else {
curInv[key] = newInv[key];
}
}
// 用一維數(shù)組存儲(chǔ)新庫(kù)存所有品類
var typeArr = [];
for (var k in curInv) {
typeArr.push(k);
}
// 對(duì)品類進(jìn)行排序
typeArr = typeArr.sort();
// 把庫(kù)存對(duì)象轉(zhuǎn)換成二維數(shù)組
arr1 = [];
for (var i in typeArr) {
var itemArr = [];
var type = typeArr[i];
var count = curInv[typeArr[i]];
itemArr.push(count);
itemArr.push(type);
arr1.push(itemArr);
}
return arr1;
}