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. java hibernate +mysql demo

    origin article:http://www.javatpoint.com/example-to-create-hibernate-application-in-eclipse-ide requ ...

  2. svn 报 is not a working copy 错误

    当时提交代码 svn  报 is not a working copy ,上网查找问题  要我重新拉代码下来 然后放进修改的代码重新提交,我觉得很不合理,我看了下我提交的代码文件有80多个,我在想是否 ...

  3. 封装python代码,避免被轻易反编译

    可使用Cython对python代码进行封装,封装成.pyd库,大致流程可参考: cython打包py成pyd,pyinstaller打包uvicorn服务过程记录_Bolly_He的博客-CSDN博 ...

  4. Matchmaker Server 像素流送配对服务器

  5. pgsql 查询结果转换为json数组

    select array_to_json(array_agg(row_to_json(t))) from (SELECT * FROM test) t

  6. ASP.NET WebAPI 单元测试-UnitTest

    xUnit.Net

  7. SSH反向隧道实现内网穿透

    1.客户端配置 /home/tsingyundev/zyy bind209.sh内容 ssh -fCNL *:1234:localhost:10022 localhost ssh209.sh内容 ss ...

  8. 【ZYNQ学习】ZYNQ架构介绍

    在上一篇博客中,主要介绍了ZYNQ的基本信息以及如何在vivado上实现自己的设计,但是在实际应用中,掌握ZYNQ的架构是必要的,因此在这篇博客中主要记录一下ZYNQ的架构 本篇博客的主要参考是ZYN ...

  9. Vue基础 · 组件的使用(4)

    组件 将公用的功能抽离出来,形成组件:目的:复用代码. 1.1 全局组件 <div id="app"> <!--引用组件,可多次引用--> <demo ...

  10. 肖sir__面试笔试题__阿里笔试题

    第一题: #给定一个无序数组nums和一个目标值target,返回数组中两个元素的和为target的算法,时间复杂度为O(1);def func1(nums,target):    dict1 = { ...