Inventory Update-freecodecamp算法题目
Inventory Update
1.要求
- 依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组.
- 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的字母顺序排列.
2.思路
- 设置两层循环,一层在arr2循环,二层在arr1循环,一层里设置标记变量mark。
- 在二次循环里判断货物是否存在,是则更新数量,mark变为false。一层循环末尾判断mark,true则把对应货物加入到数组中
- 在两层for循环中对当前的库存数组按货物名称的字母顺序排列.
3.代码
function updateInventory(arr1, arr2) {
    // 请保证你的代码考虑到所有情况
  for(var i=0;i<arr2.length;i++){//更新
    var mark =true;
    for(var j=0;j<arr1.length;j++){
      if(arr2[i][1]===arr1[j][1]){
        arr1[j][0] +=arr2[i][0];
        mark=false;
      }
    }
    if(mark){
      arr1.push(arr2[i]);
    }
  }
  for(var k=0;k<arr1.length;k++){//排序
    for(var l=k+1;l<arr1.length;l++){
      if(arr1[k][1]>arr1[l][1]){
        var temp=arr1[k];
        arr1[k]=arr1[l];
        arr1[l]=temp;
      }
    }
  }
    return arr1;
}
// 仓库库存示例
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);
4.相关链接
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
- https://freecodecamp.cn/yinyoupoet
Inventory Update-freecodecamp算法题目的更多相关文章
- Map the Debris -freecodecamp算法题目
		Map the Debris 1.要求 返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: ... 
- Spinal Tap Case -freecodecamp算法题目
		Spinal Tap Case 1.要求 将字符串转换为 spinal case. Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也 ... 
- Search and Replace -freecodecamp算法题目
		Search and Replace 1.要求 使用给定的参数对句子执行一次查找和替换,然后返回新句子. 第一个参数是将要对其执行查找和替换的句子. 第二个参数是将被替换掉的单词(替换前的单词). 第 ... 
- [优化]Steamroller-freecodecamp算法题目
		晚上在medium看到一篇关于找工作的文章,里面提到一个面试题目--flattening an array(扁平化数组).这我好像在哪看过!应该是freecodecamp里的算法某一题.翻了下博客记录 ... 
- Top Coder算法题目浏览器
		作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/top-code-offline-browser/ 关于 左耳朵耗子 ... 
- 一道算法题目, 二行代码, Binary Tree
		June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Home ... 
- iOS面试中常见的算法题目
		一.前言 这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助.不定期更新.如果大家想在线运行代码调试,可以将代码拷贝到这里.然后进行调试.下面就是常见的算法题目. 二.正文 1.就n的阶乘.(这 ... 
- 【起】ACM类下为过往所做过的部分算法题目
		[起]ACM类下为过往所做过的部分算法题目 几百道题,日后细细品味. 
- LeetCode算法题目解答汇总(转自四火的唠叨)
		LeetCode算法题目解答汇总 本文转自<四火的唠叨> 只要不是特别忙或者特别不方便,最近一直保持着每天做几道算法题的规律,到后来随着难度的增加,每天做的题目越来越少.我的初衷就是练习, ... 
随机推荐
- 性能测试工具Jmeter08-Jmeter断言(检查点)
			断言是在请求的返回层面增加一层判断机制.因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性. 下面介绍常用的jmeter三种断言 1.响应断言 例如: 模式匹配规则 2.Size A ... 
- Ruby on Rails 中你使用了Kaminari 后,千万不要再引入will_pagination 这个Gem 了
			今日做开发的时候发现的这个问题 发现无论怎样配置都不能使用Kaminari 的Per 这个功能,分页大小也固定在了30 最开始还以为是Ransack 这个Gem 影响的,上网搜了很久发现没有 最后仔细 ... 
- This blog Test the Open Live Writer
			1. We print HELLOWORLD when we first learned to code, I want to Write this blog to test the software ... 
- JDK一键安装,配置环境
			人懒,就得“多干活”! 正常安装JDK 的话,它会修改系统的path 变量,加入自己的调用路径(jre) 这样,我们刚安装好后,就可直接调用java –verbose 查看jre 安装的目录了. ( ... 
- deployment删除后,副本集未删除,解决之道
			在删除的body上加上,body.setPropagationPolicy("Foreground");就可以删除deployment的同时连同副本集一同删除. 
- Http和Https的区别--笔记
			学习链接: 知乎:https://www.zhihu.com/question/19577317 法号桑菜 http://blog.csdn.net/jasonjwl/article/details/ ... 
- Android 编码风格规范,很赞哦
			1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 1.1 术语说明 在本文 ... 
- OpenCV-3.4.2基于Qt-5.10.1的编译
			OpenCV-3.4.2基于Qt-5.10.1的编译 由于本人在使用CMake和MinGW编译OpenCV是遇到了很多问题,在这里记录下来.至于所需软件的安装和相应环境变量的设置,网上有很多详细的教程 ... 
- JavaMail 的简单使用
			概述 邮件功能模块在大多数网站中,都是必不可少的功能模块.无论是用户注册还是重置密码,邮件都是比较常用的一个方式.本文主要介绍 JavaMail 的简单使用,方便大家快速开发,供大家参考.完整的 de ... 
- LeetCode Path Sum 判断树的路径之和
			/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; ... 
