【freecodecamp】更新仓库 Inventory Update

2024-04-20 07:48

本文主要是介绍【freecodecamp】更新仓库 Inventory Update,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目要求

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

当你遇到困难的时候,记得查看错误提示、阅读文档、搜索、提问。

问题分析

1.更新的顺序要按照后面的数组来(for 循环)
2.在进行的过程中仓库也是会改变的
3.同样类型的话增加数量 否则在仓库中添加一个新的数组
4,添加完毕之后的数组要根据名字来进行排序

代码解决方案

1.一个添加新物品的函数,根据是否已经存在将单个数组元素添加进数组中

function updateSingle(singleArr){//输入为单个数组 arr1为全局变量中的仓库for(var j = 0 ; j < arr1.length;j++){if(singleArr.indexOf(arr1[j][1])>-1){//如果存在名字相同 只增加数量arr1[j][0] = arr1[j][0] + singleArr[0];return console.log('yes!');//直接返回 不运行下面的代码}}console.log('no');//原有仓库中没有 将数组作为元素添加进仓库(arr1)arr1.push(singleArr);
}

2.添加更新并且仓库

for(var x = 0; x < arr2.length; x++){updateSingle(arr2[x]);
}//这个运行完之后arr1的仓库就是最新的了

3.根据名字来进行排序

arr1.sort(function(value1,value2){var a = value1[1];var b = value2[1];a = a.toLowerCase();b = b.toLowerCase();return a > b;
});
完整代码:
function updateInventory(arr1, arr2) {function updateSingle(singleArr){for(var j = 0 ; j < arr1.length;j++){if(singleArr.indexOf(arr1[j][1])>-1){arr1[j][0] = arr1[j][0] + singleArr[0];return false;}}arr1.push(singleArr);}for(var x = 0; x < arr2.length; x++){updateSingle(arr2[x]);}arr1.sort(function(value1,value2){var a = value1[1];var b = value2[1];a = a.toLowerCase();b = b.toLowerCase();return a >b;});console.log(arr1);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);

角角兔towrabbit
欢迎评论点赞哦 ,评论还能给自己加分呢

这篇关于【freecodecamp】更新仓库 Inventory Update的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919684

相关文章

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指