[["数量","包装","价格"],["数量","包装","价格"],["数量","包装","价格"]]
要求取出相同包装数量的最低价格结果集
例子:[[10,"kg",200],[10,"kg",300],[20,"kg",100],[20,"kg",200],[30,"kg",200]]
results = [[10,"kg",200],[10,"kg",300],[20,"kg",100],[20,"kg",200],[30,"kg",200]]
result_hash = {}
results.each do |result|
result_hash[result[0]] = result unless result_hash[package_unit].present? && result_hash[result[0]][0] > result[0]
end
results = result_hash.values
StockChemicalPrice 模型下有一个字断记录报价方案:
{levels: "5,10,100", prices: "100,200,300", fees: "0,0,10"}
解析报价方案,取同包装最低报价方案
def get_stock_hash(source_entity_type)
return_result = []
purity_stock = StockChemicalPrice.standard_package.where(active: 1, stock_chemical_id: self.id, source_entity_type: source_entity_type).group_by(&:purity)
purity_stock.each do |purity,stocks|
stocks.group_by(&:package_unit).each do |package_unit,stock|
results = []
stock.each do |data|
purity = purity
package_unit = package_unit
package_unit_int = data.package_unit_before_type_cast
stock_id = data.id
levels = data.hash_rules[:levels].split(',')
prices = data.hash_rules[:prices].split(',')
levels.each_with_index do |l,i|
results << [stock_id,"#{l}#{package_unit}",purity,package_unit,prices[i],l,package_unit_int]
end
if levels.uniq != levels
result_hash = {}
results.each do |result|
result_hash[result[4]] = result unless result_hash[package_unit].present? && result_hash[result[4]][4] > result[4]
end
results = result_hash.values
end
end
return_result += results
end
end
return return_result
end
分享到:
相关推荐
MurmurHash算法由Austin Appleby创建于2008年,现已应用到Hadoop、libstdc 、nginx、libmemcached,Redis,Memcached,Cassandra,HBase,Lucene等开源系统。2011年Appleby被Google雇佣,随后Google推出其变种的...
在计算机科学中,哈希(Hash)算法是一种用于将任意长度的数据映射为固定长度输出的函数。这种输出通常称为哈希值或消息摘要。在Java编程语言中,实现哈希算法可以方便地用于数据验证、查找表以及密码存储等多种用途...
在IT领域,哈希算法(Hash Algorithm)是一种用于将任意长度的数据转化为固定长度输出的算法。这个过程通常称为哈希或散列。哈希算法在信息安全、数据完整性验证、密码学等多个方面都有着广泛的应用。本项目是用...
Hash函数集合,包含主流的hash函数: nginx_hash算法,OpenSSL_hash算法,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,DJBHash,DEKHash,APHash等等!
在IT领域,Hash算法是一种广泛应用于数据验证、存储和比较的技术。它将任意长度的数据转换成固定长度的输出,通常称为Hash值或指纹。在这个压缩包中,我们重点关注的是图像的相似度Hash算法,特别是平均哈希算法(a...
### 基于Bloom-Filter算法的URL过滤器实现详解 #### 一、Bloom-Filter算法简介 Bloom Filter是一种空间效率极高的概率型数据结构,它由Burton Howard Bloom在1970年提出。Bloom Filter主要用于判断一个元素是否在...
Java实现GeoHash算法是一种在IT领域中用于地理位置数据存储和检索的技术。GeoHash将经纬度坐标转换为字符串,使得地理位置可以被高效地索引和查询。这种算法利用了空间分割和编码策略,使得相邻的位置在编码后具有...
### 多次Hash快速分词算法 #### 一、引言 中文文本处理与英文文本处理存在显著差异,其中最重要的一点在于中文词汇之间没有明显的分隔符(如空格)。这一特点使得中文分词成为了中文信息处理领域的基础任务之一。...
Hash Join 算法是一种高效的数据库连接操作,尤其在处理大数据量的相等连接时表现优越。它在Oracle 7.3版本引入,只适用于相等连接,并且必须在Cost-Based Optimizer (CBO)模式下运行。不同于Nested Loop Join,Hash...
一个hash算法的工具类,里面包含了一些常用的hash算法
### Hash算法相关介绍 在计算机科学领域,哈希(Hash)是一种将任意长度的数据映射为固定长度数据的技术。哈希算法广泛应用于多种场景中,包括但不限于数据完整性验证、密码存储、快速查找等。本文主要介绍了几种...
### 经典Hash算法概述与实现 #### 一、引言 哈希算法在计算机科学领域扮演着极其重要的角色,特别是在数据检索、信息安全以及数据完整性校验等方面。它能够将任意长度的数据转换成一个固定长度的哈希值,这一过程在...
GeoHash算法是一种基于地理坐标的分布式空间索引技术,它通过将地球表面的经纬度坐标转化为可比较的字符串,使得我们可以高效地进行地理位置的搜索、范围查询以及邻居查找等操作。这种算法尤其适用于大数据和分布式...
"Hash算法MD5实验报告材料" 本实验报告主要介绍了Hash算法MD5的实验报告,旨在通过实际编程来了解MD5算法的加密和解密过程,并加深对Hash算法的认识。 一、Hash算法的定义 Hash算法是一种将输入数据转换为固定...
在编程领域,哈希算法(Hash Algorithm)是用于将任意长度的数据映射为固定长度的输出,通常这个输出称为哈希值。哈希算法在很多场景下被广泛应用,如数据完整性校验、缓存查找、数据库索引等。Go语言标准库中提供了...