双数组中的操作

1、将a数组中的对象的value赋值到b数组对象的key进行重组处理

const tableHeaderKey = [
     { '规格': 'one', value: '规格' },
     { '材质': 'two', value: '材质'},
     { '颜色': 'three', value: '颜色' },
 ]
 
// 价格和库存都是固定的
 const tableData = [
  {
    '规格': '20cm',
    '材质': '塑料',
    '颜色': '红色',
    '价格': '12',
    '库存': '100',
  }, {
    '规格': '20cm',
    '材质': '塑料',
    '颜色': '红色',
    '价格': '12',
    '库存': '100',
  }
 ]

              const newTableData = tableData.map(item => {
                const resObj = {}
                Object.keys(item).forEach(item2 => {
                  const findObj = tableHeaderKey.find(k => k.value === item2)
                  if (findObj) {
                    resObj[findObj[item2]] = item[item2]
                  }
                })
                  return {
                    ...resObj,
                    inventory: item['库存'],
                    price: item['价格'],
                  }
              })

              console.log(newTableData , '处理之后的');

 2、筛选出表格数据中表头对应的类型值,并作出标识字段

const tableHeaderKey = [
     { '规格': 'one', value: '规格' },
     { '材质': 'two', value: '材质'},
     { '颜色': 'three', value: '颜色' },
 ]
 
// 价格和库存都是固定的
 const tableData = [
  {
    '规格': '20cm',
    '材质': '不锈钢',
    '颜色': '白色',
    '价格': '12',
    '库存': '100',
  }, {
    '规格': '20cm',
    '材质': '塑料',
    '颜色': '黑色',
    '价格': '12',
    '库存': '100',
  }
 ]

const tableHeader = [ '规格', '材质', '颜色', '价格', '库存'];
const isOptions = ['库存', '价格']
// 筛选的表格数据
        const subMitTable = tableHeader.map(item => {
          if (!isOptions.includes(item)) {
            const select = tableData.map(item1 => {
              return item1[item]
            })
            return {title: item, subTitle: select}
          }
        }).filter(item => !!item)
        console.log(subMitTable); 
        /**
         * 打印结果
         * [
         *  { title: '规格', subTitle: ['20cm'] },
         *  { title: '材质', subTitle: ['塑料', '不锈钢'] },
         *  { title: '颜色', subTitle: ['黑色', '白色']}
         * ]
         */
        const subMitTableStr = subMitTable.map(item => {
          return `title:${item.title},subTitle:${item.subTitle.join('-')},titleKey:${tableHeaderKey.find(item1 => item1.value === item.title)[item.title]}`
        })
        console.log(subMitTableStr, 'subMitTableStr');
        /**
         * 打印结果
         * [
         *  'title:规格,subTitle:20cm,titleKey:one',
         *  'title:材质,subTitle:塑料-不锈钢,titleKey:two',
         *  'title:颜色,subTitle:黑色-白色,titleKey:three'
         * ]
         */

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值