Inventory Update


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

Global Array Object

 1 function updateInventory(arr1, arr2) {
2 var a = 0;
3 for (var i = 0; i < arr2.length; i++) {
4 //先遍历数组arr2
5 for (var j = 0; j < arr1.length; j++) {
6 // 遍历数组arr1
7 if (arr1[j][1] === arr2[i][1]) {
8 //拿出一个arr[i][1],然后在arr1[j][1]里找,如果有相等的,就让他们的arr[j][0]想加并赋值给arr1[j][0];
9 arr1[j][0] += arr2[i][0];
10 } else {
11 //如果arr2[i][1]与arr[j][1]中一个之不相等,就给a加一
12 a += 1;
13 }
14
15 }
16 if (a === arr1.length) {
17 //如果a的值与arr1的数组长度相等,就说明arr1[j][1]中没有与 arr2[i][1]相等的,那么就吧arr2[i]push进arr1;
18 arr1.push(arr2[i]);
19
20 }
21 a = 0;
22 }
23 arr1.sort(function (a, b) {
24 //把arr1按第二项字符串的首字母顺序排序
25 return a[1] > b[1];
26 });
27 return arr1;
28 }
29
30 // 仓库库存示例
31 var curInv = [
32 [21, "Bowling Ball"],
33 [2, "Dirty Sock"],
34 [1, "Hair Pin"],
35 [5, "Microphone"]
36 ];
37
38 var newInv = [
39 [2, "Hair Pin"],
40 [3, "Half-Eaten Apple"],
41 [67, "Bowling Ball"],
42 [7, "Toothpaste"]
43 ];
44
45 //updateInventory([[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]], [[2, "Hair Pin"], [3, "Half-Eaten Apple"], [8, "Toothpaste"], [67, "Bowling Ball"]]);
46 updateInventory(curInv, newInv);

FCC 高级算法题 库存更新的更多相关文章

  1. fcc的高级算法题

    核心提示:本部分一个9道题,给定时间50小时.属于fcc前端学习的"高级编程脚本"题,对于初学者来说,确实算是"高级"了.如果只想着闭门造车,50小时确实也不过 ...

  2. FCC上的初级算法题

    核心提示:FCC的算法题一共16道.跟之前简单到令人发指的基础题目相比,难度是上了一个台阶.主要涉及初步的字符串,数组等运算.仍然属于基础的基础,官方网站给出的建议完成时间为50小时,超出了之前所有非 ...

  3. FCC上的javascript算法题之中级篇

    FCC中的javascript中级算法题解答 中级算法的题目中用到了很多js的知识点,比如迭代,闭包,以及对json数据的使用等等,现在将自己中级算法的解答思路整理出来供大家参考讨论.欢迎大家提出新的 ...

  4. FCC的javascript初级算法题解答

    FCC上的javascript基础算法题 前一阵子做的基础算法题,感觉做完后收获还蛮大的,现在将自己的做法总结出来,供大家参考讨论.基本上做到尽量简短有效,但有些算法还可以继续简化,比如第七题若采用正 ...

  5. FreeCodeCamp 高级算法(个人向)

    freecodecamp 高级算法地址戳这里. freecodecamp的初级和中级算法,基本给个思路就能完成,而高级算法稍微麻烦了一点,所以我会把自己的解答思路写清楚,如果有错误或者更好的解法,欢迎 ...

  6. 高盛昂赛 算法题先写corner case

    [方法] 字写大点,先注释框架 链表:指针走就行了,最多是两个同时一起走. 两个链表求交点 //corner case if (headA == null || headB == null) { re ...

  7. FCC高级编程篇之Validate US Telephone Numbers

    Validate US Telephone Numbers Return true if the passed string is a valid US phone number. The user ...

  8. W3C高级算法挑战之python实现

    最近在学python,网上很难找到对应的算法题网站,专业算法网站大部分都是国外的,之前在w3cschool看到有三个级别的Javascript脚本算法挑战,尝试用python实现,代码量相对比较少,如 ...

  9. leetcode算法题(JavaScript实现)

    题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度,Array对象.String对象等原生方法,构造函数. ...

  10. 面试经典算法题集锦——《剑指 offer》小结

    从今年 3 月份开始准备找实习,到现在校招结束,申请的工作均为机器学习/数据挖掘算法相关职位,也拿到了几个 sp offer.经历这半年的洗礼,自己的综合能力和素质都得到了一个质的提升. 实话说对于未 ...

随机推荐

  1. python requests 内置请求模块

  2. WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]

    最近在使用的 wsl2 的时候突然发现 wsl2 无法正常联网,即 ping 不通外网以及宿主机的 wsl 网卡.但是将 wsl 版本设置为 1 就可以联网了. 如果你是正常使用的时候,并且自己没有手 ...

  3. git将自己分支上忽略已修改但不需要的提交的文件

    一:在idea上把需要提交的文件勾选上提交 二:git stash命令将余下被修改的文件存入(隐藏)暂存区 git stash 三:切换master分支合并上述分支 四:合并后再返回上述分支,git ...

  4. windows上Yii2使用workerman整套流程

    1.在根目录下新建Worker目录 进入新建的Worker文件夹 运行 LINUX下运行 composer require workerman/workerman win 下运行 composer r ...

  5. unity默认管线lightmap

    lightmap采样 https://blog.csdn.net/wodownload2/article/details/94431040

  6. 解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题

    解决方法:在终端中运行命令:npm cache clear --force 然后重新运行 npm i 命令,再次安装安装完成,没有出现报错npm run serve 运行项目,项目可以正常启动了. 安 ...

  7. Java数组之三种初始化及内存分析

    内存分析 Java内存 堆: 1.存放new的对象和数组 2.可以被所有的线程共享,不会存放别的对象引用 栈: 1.存放基本变量类型(会包含这个基本类型的具体数值) 2.引用对象的变量(会存放这个引用 ...

  8. 如何利用python的xlrd模块读取日期格式的Excel

    经常使用python操作Excel,就会遇到各种坑,比如,有时候你读取到的某一单元格的数据,你预想的结果本来应该是这样的,但是它却是这样的,真是很蛋疼.于是你会找各种解决办法,去解决这个问题!所以鄙人 ...

  9. 时间序列 data_range()

    pd.date_range( start=None,#开始时间 end=None,#截止时间 periods=None,#总长度 freq=None,#时间间隔 tz=None,#时区 normali ...

  10. 040_Field Set

    Field Set是一组字段.例如,您可以有一个Field Set,其中包含描述用户的名字,中间名,姓氏和业务标题的字段.将Field Set添加到Visualforce页面时,开发人员可以遍历字段并 ...