美文网首页Web 前端开发 让前端飞
【Javascript】库存更新程序

【Javascript】库存更新程序

作者: 雨水之后 | 来源:发表于2017-11-28 16:26 被阅读0次

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

function updateInventory(curInv, newInv) {

  //遍历两个数组,如果碰见商品名字一样的,就为curInv中该商品的数量相加
  //相加之后,在newInv中删掉这个商品,避免后续操作重复  
  curInv.forEach(function(elementC,indexC){

    newInv.forEach(function(elementN,indexN){

      if(elementN[1]===elementC[1]){
        elementC[0] += elementN[0];
        newInv.splice(indexN,1);
      }

    });

  });

  //连接两个数组
  curInv = curInv.concat(newInv);

  //写函数,让二位数组按照其名字首字母排列
  function letterSort(arr){

    arr.forEach(function(e,i){
      arr[i].unshift(arr[i][1]);
      arr[i].pop();
    });

    arr.sort();

    arr.forEach(function(e,i){
      arr[i].unshift(arr[i][1]);
      arr[i].pop();
    });

    return arr;

  }

  return letterSort(curInv);

}

//例子
var curInv = [
    [21, "Bowling Ball"],
    [2, "Dirty Sock"],
    [1, "Hair Pin"],
    [5, "Microphone"]
];

var newInv = [
    [2, "Hair Pin"],
    [3, "Half-Eaten Apple"],
    [67, "Bowling Ball"],
    [7, "Toothpaste"]
];

updateInventory(curInv, newInv);

/*结果
[ 
  [ 88, 'Bowling Ball' ],
  [ 2, 'Dirty Sock' ],
  [ 3, 'Hair Pin' ],
  [ 3, 'Half-Eaten Apple' ],
  [ 5, 'Microphone' ],
  [ 7, 'Toothpaste' ] 
]
*/

关于letterSort(arr),我采用的方法是,先把内部数组两个元素的位置对调,然后sort()之后再对调回来的方法。

总感觉这么做好像有点拖拖拉拉,如果有谁能够有更好的方法,求分享,谢谢。

THE END.

相关文章

  • 【Javascript】库存更新程序

    依照一个存着新进货物的二维数组,更新存着现有库存(在curInv中)的二维数组。如果货物已存在则更新数量,如果没有...

  • 库存更新

    小柴胡汤加生石膏3付 柴胡50 石膏140 黄芩30 薏仁100 党参50 炙甘草50

  • FCC 库存更新

    题目 依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 ...

  • 会当临绝顶,一览众山小

    2015.7.5 计划开启,每日更新进度,以此鞭策自己 书单 算法导论 Javascript高级程序设计 进度 算...

  • 库存热点分片扣库存技术实现

    一、背景 库存模块是一个更新数据库密集型的模块,无时无刻不在有库存更新操作,虽然目前线上库存使用了独立Oracle...

  • 元素注入: DocumentFragments与innerHTM

    现在假设我们页面中有一个 元素,调用ajax获取json列表,然后使用javascript更新元素内容。通常,程序...

  • JavaScriptCore

    运行应用程序中的JavaScript程序,并支持在应用程序编写JavaScript。 通览 JavaScriptC...

  • 旅拍分享

    这个更新略显佛系。 旅行中拍的库存。

  • Flow 文档记录

    持续更新中 Flow介绍 Flow是一个作用于JavaScript语言的静态类型检查程序。 示例: Flow可以很...

  • 2018-07-23javascript基本了解

    第一个javascript程序 第一个javascript程序

网友评论

    本文标题:【Javascript】库存更新程序

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