Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >先用variations将树形结构构建出来,节点默认值为null

先用variations将树形结构构建出来,节点默认值为null

原创
作者头像
用户7737280
发布于 2024-08-22 02:26:01
发布于 2024-08-22 02:26:01
1910
举报

class VariationSearchMap {

constructor(apiData) {

this.tree = this.buildTree(apiData);

}

// 这就是前面那个构造树的方法

buildTree(apiData) {

const tree = {};

const { variations, products } = apiData;

// 先用variations将树形结构构建出来,叶子节点默认值为null

addNode(tree, 0);

function addNode(root, deep) {

const variationName = variations[deep].name;

const variationValues = variations[deep].values;

for (let i = 0; i < variationValues.length; i++) {

const nodeName = `${variationName}:${variationValues[i].name}`;

if (deep === variations.length - 1) {

root[nodeName www.laipuhuo.com] = null;

} else {

root[nodeName] = {};

addNode(root[nodeName], deep + 1);

}

}

}

// 然后遍历一次products给树的叶子节点填上值

for (let i = 0; i < products.length; i++) {

const product www.laipuhuo.com = products[i];

const { variationMappings } = product;

const level1Name = `${variationMappings[0].name}:${variationMappings[0].value}`;

const level2Name = `${variationMappings[1].name}:${variationMappings[1].value}`;

const level3Name = `${www.laipuhuo.com variationMappings[2].name}:${variationMappings[2].value}`;

tree[level1Name][level2Name][level3Name] = product;

}

// 最后返回构建好的树

return tree;

}

// 添加一个方法来搜索商品,参数结构和API数据的variationMappings一样

findProductByVariationMappings(variationMappings) {

const level1Name = `${variationMappings[0].name}:${variationMappings[0].value}`;

const level2Name = `${www.laipuhuo.com variationMappings[1].name}:${variationMappings[1].value}`;

const level3Name = `${variationMappings[2].name}:${variationMappings[2].value}`;

const product = this.tree[level1Name][level2Name][level3Name];

return product;

}

}

const variationSearchMap = new VariationSearchMap(apiData); // new一个实例出来

// 然后就可以用这个实例进行搜索了

const searchCriteria = [

{ name: '颜色', value: '红色' },

{ name: '尺码', value: '40' },

{ name: '性别', value: '女' }

];

const matchedProduct = variationSearchMap.findProductByVariationMappings(searchCriteria);

console.log(www.laipuhuo.com matchedProduct', matchedProduct); // { productId: 8 }

// 1

public String sum(

final Collection<BigDecimal> bigDecimalCollection

) {

final BigDecimal sumResult = bigDecimalCollection

.stream()

.reduce(BigDecimal.ZERO, BigDecimal::add);

final Decimal www.laipuhuo.com Format format = new DecimalFormat("#,##0.00");

return format.format(sumResult);

}

// 2

public BigDecimal sum(

final Collection<BigDecimal> bigDecimalCollection

) {

return bigDecimalCollection

.stream()

.reduce(BigDecimal.ZERO, BigDecimal::add);

}

// 1

if(userList.isNotEmpty()){

}

// 4

if(userList.length() != 0){

}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【C语言加油站】qsort函数的模拟实现
在数组篇章中,咱们有介绍过一种排序的方式——冒泡排序。不知道大家还有没有印象,如果没印象也没关系,等会我们会再简单介绍一下,今天我们要介绍的主角是C语言提供的一个进行排序的库函数——qsort。下面我们就开始今天的内容吧!!!
蒙奇D索隆
2023/12/19
1730
【C语言加油站】qsort函数的模拟实现
【c语言】qsort函数及泛型冒泡排序的模拟实现
在了解qsort函数之前,我们先来学习一个概念:回调函数。那么回调函数是什么呢?
ephemerals__
2024/10/24
1400
【c语言】qsort函数及泛型冒泡排序的模拟实现
指针(6)---qsort函数
我们都知道数组的起始位置其实就是数组名,所以这里的含义其实也就是数组名的意思。而且由于可能要排序任意类型的数据,故设计成void*
Skrrapper
2024/06/18
1070
手把手教你使用qsort函数
qsort的作用是对不同数据类型的数组的内容进行排序,排序的升序降序可以由你所提供的函数参数所改变。
大海里的番茄
2024/01/19
1910
手把手教你使用qsort函数
【C语言】手把手带你拿捏指针(4)(含qsort函数详解)
什么是回调函数?    回调函数就是⼀个通过函数指针调用的函数。    如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发⽣时由另外的一方调用的,用于对该事件或条件进行响应    可能这么说着有些抽象,我们还是举一个例子,比如上一篇文章我们讲到的计算器,我们当时为了解决代码冗余,使用了转移表,也就是函数指针数组,那么是否还有其它方法呢?比如我坚持使用Switch语句,而不使用if语句    这个内容就涉及到我们的回调函数,回调函数简单地说就是将函数指针传给另一个函数,通过这个函数来使用传过来的函数    我们可以将之前冗余的部分包装成函数,最大的冗余就是那个Switch语句,我们来看看冗余部分:
TANGLONG
2024/10/15
1170
【C语言】手把手带你拿捏指针(4)(含qsort函数详解)
【指针进阶三】实现C语言快排函数qsort&回调函数
因为cmp比较函数需要使用者自行设计,所以对于不同的使用者在qsort函数里传给cmp函数的参数类型可能是任何类型的指针,所以在cmp比较函数内得用void*类型的指针来接收,使用时只需将void* 类型的指针做出相应的强转即可。
MicroFrank
2023/01/16
5090
C语言-qsort函数的使用与实现
认识一个新的函数,我们就应该知道它的参数与返回,我们可以通过MSDN去查找相关信息
HABuo
2024/11/19
1210
C语言-qsort函数的使用与实现
剖析C语言回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应。
用户11316056
2024/10/16
2040
剖析C语言回调函数
C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】
对数组的元素进行排序 对数组中由 指向的元素进行排序,每个元素字节长,使用该函数确定顺序。 此函数使用的排序算法通过调用指定的函数来比较元素对,并将指向它们的指针作为参数。
南桥
2024/01/26
1560
C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】
c语言qsort函数的模拟实现
回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 这样讲也许会有点抽象,等下面讲到实际案例时再具体介绍:>
用户11029269
2024/03/19
1700
c语言qsort函数的模拟实现
【C语言篇】深入理解指针4(模拟实现qsort函数)
如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。
半截诗
2024/10/09
1020
【C语言篇】深入理解指针4(模拟实现qsort函数)
[C语言日寄]以指针进阶:空类型指针与qsort函数
在C语言的学习中,指针始终是一个核心且难以绕开的话题。它既强大又容易出错,但一旦掌握,就能极大地提升代码的灵活性和效率。今天,我们将通过一个具体的题目,深入探讨空类型指针(void*)和C标准库中的qsort函数,帮助大家更好地理解和应用指针的高级特性。
siy2333
2025/02/25
1070
[C语言日寄] qsort函数的练习
在C语言的世界里,qsort 函数是一个非常强大且灵活的工具,它允许我们对任意类型的数组进行快速排序。这种特性使得 qsort 在处理复杂数据排序时变得非常方便。今天,我们就通过一个简单的程序来深入探讨 qsort 的使用,以及它在C语言中的重要性。
siy2333
2025/03/16
660
【C语言】qsort函数介绍
讲这个东西之前我们来认识一下回调函数,回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数 时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
用户11290673
2024/09/25
1050
【C语言】qsort函数介绍
C语言---深入指针(4)
对于qsort函数来说,我们只需要额外构建一个比较函数就能利用qsort进行快速排列
Undoom
2024/09/23
1100
用qsort函数来模拟实现全类型的冒泡排序
缺点:效率不高 (如果一个数组有n个数,那么排序完成后需要比较n*(n-1)/2次) 并且一般适用于整形 如果是结构体类型,浮点型类型或者其他类型,就会很麻烦
用户11369558
2024/11/20
640
用qsort函数来模拟实现全类型的冒泡排序
qsort函数的使用和模拟实现排序
自我介绍:一个脑子不好的大一学生,c语言接触还没到半年,若涉及到效率等问题,各位都可以在评论区提出见解,谢谢啦。
用户11039529
2024/03/25
1890
qsort函数的使用和模拟实现排序
冒泡排序的快速排序——qsort函数的模拟实现
上一期我们留下了一个题目: 判断一个字符串是否是另一个字符串左旋后的字符: 其实我们只要将原字符串用memcpy加到原字符串的后面构成一个新的字符串,只要你给出的字符串在这个新的字符串里面(用strstr函数),那么他就是这个字符串左旋后的字符串 例如:BCDA如果在下面的这个字符串中,所以是左旋后的字符串
ahao
2024/03/19
1090
冒泡排序的快速排序——qsort函数的模拟实现
qsort函数的应用以及模拟实现
strcmp函数用于比较字符串的,它的比较方式是比较字符的ASCII码值,并不是长度,后续在库函数模拟篇会讲到.
初阶牛
2023/03/08
6460
qsort函数的应用以及模拟实现
C语言-qosrt函数—秩序大师
在cplusplus(C语言函数查询网站)上,我们可以看到qsort函数的函数原型
LonlyMay
2024/10/21
930
C语言-qosrt函数—秩序大师
相关推荐
【C语言加油站】qsort函数的模拟实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档