vue使用笛卡尔积算法构建sku表格

1.根据笛卡尔积算法来构建二维数组

  • 变量1接收过滤的tag标签,生成二维数组组

  • 变量2获取维度名称

判断如果规格长度等于0,直接把规格属性赋空,然后使用笛卡尔积算法将数据进行交叉处理(使用reduce方法,参数1:空的二维数组,参数2:变量2的数据(维度名称标签),在声明一个空的数组array(用这个空数组去匹配交叉数组),再拿出reduce参数1空的二维数组,forEach循环遍历,在使用forEach遍历变量2数据(维度名称标签),进行交叉匹配,连接起来添加进array空数组,然后在这个二维数组中重新映射为对象数组,进行拼接数据构建sku表格

// 根据笛卡尔积来构建二维数组,在这个二维数组中重新映射为对象数组,首先过滤
function addTag() {
    // 根据笛卡尔积来构建二维数组,在这个二维数组中重新映射为对象数组
    const specList = formListAdd.value.specificationList//过滤tag标签,生成2维数组: 
    //数组对象中的数组取出,得到一个二维数组(蓝色tag标签)
    const valueList = specList.filter((item: any) => item.values.length).map((item: any) => item.values)
    // 添加name值(黄色tag标签)//获取维度名称,放到数组中 右边
    const titlesList = specList.filter((item: any) => item.title.length).map((item: any) => item.title)
    if (valueList.length == 0) {//如果规格没有这种属性,直接把规格属性赋空
        formListAdd.value.skuList = []
        return
    }
    // 使用笛卡尔积算法将数据进行交叉处理
    var skuArr = valueList.reduce((pre: string[][], next: any[]) => {//pre是一个空的二维数组 next(黄色tag标签)的内容也就是类型
        var array: string[][] = []//用这个空数组去匹配交叉数组
        pre.forEach(item1 => {//拿出空的一维数组
            next.forEach(item2 => {//遍历黄色tag标签内容,也就是交叉匹配
                array.push(item1.concat([item2]))//连接起来添加进array空数组
                return array
            })
        })
        return array
    }, [[]])
    // 进行拼接数据
    //构建sku表格--最终渲染出表格
    let list = skuArr.map((item: any, index: number) => {//根据skuArr来构建对象数组 
        let obj = { //对象将属性值并渲染到sku表格中
            price: formListAdd.va
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值