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. BIP设计器代码不生效的问题解决方案

    bip高级设计器里的前端代码:0租户问题解决在iuap_yonbuilder_service库里的hpa_extcode表hpa_extcode表里搜索billno字段,对应高级设计器里的单据编码拿到 ...

  2. 《Django 3 Web应用开发从零开始学(视频教学版)》源码课件教学视频免费下载

    #好书推荐##好书奇遇季#<Django 3 Web应用开发从零开始学(视频教学版)>,配书资源文后提供了下载二维码.京东当当天猫都有发售. https://item.jd.com/133 ...

  3. 使用Certbot申请证书

    使用certbot申请*通配符证书,使用letsencrypt证书服务,使用DNS方式手动验证 certbot certonly --preferred-challenges dns --manual ...

  4. 微信小程序笔记_02

    在微信小程序中使用Echarts组件 github源码地址:https://github.com/ecomfe/echarts-for-weixin gitcode源码地址:https://gitco ...

  5. linux 服务器 重命名

    vim /etc/hosts 追加 10.10.134.68 RmcbTestDB3 RmcbTestDB3               # ip  名称 名称 127.0.0.1 localhost ...

  6. HELM的使用

    一.helm的主要功能 1.创建新的chart 2.chart打包成tgz格式 3.上传chart到chart仓库或从仓库中下载chart 4.在kubernetes集群中安装或卸载chart 5.管 ...

  7. Hub

    public class StreamHub : Hub { public ChannelReader<string> ReadLogStream() { var channel = Ch ...

  8. 整理15款实用javascript富文本编辑器

    百度UEditor 官方网址:http://ueditor.baidu.com/website/ UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验 ...

  9. 2022-3-24内部群每日三题-清辉PMP

    1.敏捷团队成员认为每日站会并不会增加价值,是因为小组规模太大.在回顾会议上,他们提出将现有的项目团队分解成更小的小组.Scrum主管应该怎么做? A.缩小团队规模,使站会更易于管理. B.在采取行动 ...

  10. Nginx 配置https的单向或双向认证

    一.自制https认证证书 1. 制作CA证书 A. 生成CA私钥:openssl genrsa -des3 -out ca.key 2048,注意要输入两次密码,若去除密码使用openssl rsa ...