Inventory Update

作者: Awoooo | 来源:发表于2017-11-01 14:26 被阅读0次

    依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的字母顺序排列.

    对于二维数组排序问题,可以变换成一维数组排序来解决。

    function updateInventory(arr1, arr2) {
      // 请保证你的代码考虑到所有情况
      var curInv = {};
      var newInv = {};
      // 把现有库存的二维数组转换成库存对象
      arr1.forEach(function(item, arr) {
        curInv[item[1]] = item[0];
      });
      // 把新建货物的二维数组转换成库存对象
      arr2.forEach(function(item, arr) {
        newInv[item[1]] = item[0];
      });
    
      //  归并货物品类及数量
      for (var key in newInv) {
        if(curInv[key]) {
          curInv[key] += newInv[key];
        } else {
          curInv[key] = newInv[key];
        }
      }
    
      // 用一维数组存储新库存所有品类
      var typeArr = [];
      for (var k in curInv) {
        typeArr.push(k);
      }
      // 对品类进行排序
      typeArr = typeArr.sort();
    
      // 把库存对象转换成二维数组
      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;
    }
    

    相关文章

      网友评论

        本文标题:Inventory Update

        本文链接:https://www.haomeiwen.com/subject/rcxgpxtx.html