首页 > 其他分享 >202312142321_《遍历 for customised data structure 》

202312142321_《遍历 for customised data structure 》

时间:2023-12-14 23:34:05浏览次数:32  
标签:sku erp componentCount customised 202312142321 let result data inventory

function calculateAssembledSetsAndReturnSkus(suitComponents, inventory) {
    let componentCount = {};
    let minComponent = {};
    let result = {};

    // Count components in suitComponents
    Object.entries(suitComponents).forEach(([_, components]) => {
        Object.entries(components).forEach(([sku, quantity]) => {
            componentCount[sku] = (componentCount[sku] || 0) + quantity;
        });
    });

    // Calculate the minimum sets and find limiting components
    let minSets = Infinity;
    for (let sku in componentCount) {
        let requiredQuantity = componentCount[sku];
        let availableQuantity = inventory[sku] || 0;

        if (availableQuantity < requiredQuantity) {
            minSets = 0;
            minComponent[sku] = availableQuantity;
        }

        let setsForComponent = Math.floor(availableQuantity / requiredQuantity);
        minSets = Math.min(minSets, setsForComponent);
    }

    // Sort the inventory based on quantity
    let sortedInventory = Object.entries(inventory).sort((a, b) => a[1] - b[1]);

    // ... rest of the function remains unchanged

    result['sets'] = minSets;
result['leastAvailable'] = getFirstNKeys(minComponent, 3);
result['mostAvailable'] = getLastNKeys(sortedInventory, 3);
result['medianAvailable'] = getMedianNKeys(sortedInventory, 3);

return result;
} // Example usage let suitComponents = { "spu1": { "sku-erp-code1": 2, "sku-erp-code2": 3 }, "spu1-spu2": { "sku-erp-code3": 1, "sku-erp-code4": 2 }, "spu3-spu4": { "sku-erp-code5": 1, "sku-erp-code4": 11 }, "spu3": { "sku-erp-code9": 13, "sku-erp-code2": 21 } }; let inventory = { "sku-erp-code1": 20, "sku-erp-code2": 30, "sku-erp-code3": 15, "sku-erp-code4": 25, "sku-erp-code5": 10, "sku-erp-code9": 50 }; let result = calculateAssembledSetsAndReturnSkus(suitComponents, inventory); console.log(result);

 

标签:sku,erp,componentCount,customised,202312142321,let,result,data,inventory
From: https://www.cnblogs.com/beesky520/p/17902466.html

相关文章

  • 【活动回顾】Databend 云数仓与 Databend Playground 扩展组件介绍
    2023年12月7日,作为KubeSphere的合作伙伴,Databend荣幸地受邀参与了KubeSphere社区主办的云原生技术直播活动。本次活动的核心议题为「Databend云数仓与DatabendPlayground扩展组件介绍」,此次分享由DatabendLabs的研发工程师尚卓燃担任主讲嘉宾,向与会者呈现了一场......
  • Vue 图片上传formdata()传参形式
    1.接口需要设置 headers:{'Content-Type':'multipart/form-data'}, from-data流的形式传参 2.jshtml://文件上传<divclass="file"><el-buttontype="primary"style="width:170px"icon="el-icon-upload......
  • 安装NETDATA集群监控面板
    安装NETDATA集群监控面板介绍官方链接演示网页:https://my-netdata.io/官方首页:http://netdata.cloud/文档地址:http://docs.netdata.cloudgithub地址:https://github.com/netdata/netdata#infographic安装官网提供一键安装脚本bash<(curl-Sshttps://my-netdata.io/kick......
  • 浅谈 JSON 对象和 FormData 相互转换
    前言大家都知道,前端在和后台进行交互联调时,肯定避免不了要传递参数,一般情况下,params在get请求中使用,而post请求下,我们有两种常见的传参方式:JSON对象格式和formData格式,但是一些场景是需要我们对这两种数据格式进行转换的,例如表单提交,有些是JSON对象格式的数据,有些是F......
  • 使用Apache POI 导入导出时出现You need to call a different part of POI to process
    问题复现在学习导出功能时使用HSSFWorkbook导出了一个xxx.xlsx格式的文件,然后用XSSFWorkbook的读取方式来拿文件去导入时出现了这个bug这是当时做导出测试代码Workbookwb=newHSSFWorkbook();CreationHelpercreationHelper=wb.getCreationHelper();Sheetsheet=wb.cr......
  • 使用NineData,轻松完成阿里云RDS MySQL至ClickHouse数据迁移
    云数据库RDSMySQL和云数据库ClickHouse是阿里云推出的两个备受欢迎的数据库解决方案,它们为用户提供了可靠的数据存储方案、分析数仓方案,本文介绍如何快速将RDSMySQL的数据同步到云数据库ClickHouse。如何快速将RDSMySQL的数据同步到云数据库为什么要将RDSMySQL的......
  • Lombok中@Data的坑
    一、问题:实体类中日常使用@Data注解来生成getter/setter方法,有个字段为xPoint的属性,在使用MapStruct映射该字段的时候,发现无法映射到该字段@Mapping(target="x",source="xPoint")二、分析@Data对该字段生成的getter方法为publicStringgetXPoint(){ returnthis.xPo......
  • 将value值是true、false的转为1、0,然后将yData数组里的值全部加个2
         ......
  • 将第2层数据中的数组对象中的ts属性、value属性遍历单独存放到一个新数组中xData、yDa
          ......
  • NineData慢查询分析功能:为DBA提供全面的数据库性能解决方案
    对于一个DBA来说,从公司数据库系统的稳定程度可以看出他的能力几何,一个优秀的DBA不仅要保证数据库的稳定运行,还需要有能力有效处理数据库的各种突发性能问题,而最常见的性能问题,就是慢查询。我们公司规模比较大,大大小小的项目加起来超过100个数据库实例,而保证这些数据库的稳......