数据处理小方法

1.lodash的uniqBy方法   获得数组中多个对象里某个值并去重,返回新数组

import uniqBy from 'lodash/uniqBy';
  
const uniqList = uniqBy(planList, 'planSimpleName');
const planNameLiat = uniqList.map((item: any) => item.planSimpleName)?.join(',') || '';

2.window.location.href = 要去的地址(会刷新)
history.push或者replace也可以跳转

3.模板语法  给toolTips内的文字进行换行

<template #title>
                  <span style="white-space: pre">{{//这句是关键
                    custProfile?.portraitInfo &&
                    custProfile?.portraitInfo[item]?.reduce((sum, item) => {
                      return (sum += item.labelDesc + '\n');
                    }, '')
                  }}</span>
                </template>

4.校验是不是json字符串

 const isJson = (str: string) => {
      if (typeof str === 'string') {
        try {
          const obj = JSON.parse(str);
          if (obj && typeof obj === 'object') {
            return true;
          }
          return false;
        } catch (e) {
          return false;
        }
      } else {
        return false;
      }
    };

5.广告图的滑动

  // 获取会员福利模块中卡片的宽度
          const itemWidth = document.querySelector('.tabs__header__item')?.clientWidth;
          // 获取会员福利模块总宽度
          const itemNum = memberInfo?.userQuarterGiftDTOs?.length;
          const contentWidth = itemWidth * (itemNum - 2) + 10 * (itemNum - 1);
          // 获取会员福利模块中第一个卡片距离左边的初始距离
          const startWidth = document
            .querySelector('.za-tabs__header__item')
            .getBoundingClientRect().left;
          // 监听会员福利模块的滚动事件
          document.querySelector('.tabs__header').addEventListener('scroll', () => {
            // 获取动态的会员福利模块中第一个卡片距离左边的距离并取正数
            const firstItemToLeft = Math.abs(document.querySelector('.tabs__header__item').getBoundingClientRect().left);
            // 排除距离左侧的margin的影响
            const alreadyShowWidth = firstItemToLeft - startWidth >= 0 ? firstItemToLeft - startWidth : 0;
            // 计算会员福利模块中第一个卡片占整个福利模块宽度的百分比
            const showPercent = alreadyShowWidth / contentWidth;
            // 更新自定义scrollBar的距离左侧margin
            setScrollPercent(showPercent);//把值存起来 赋值给下方的滚动条
          });

  useEffect(() => {
    if (tabRef.current) {
      tabRef.current.style.setProperty('margin-left', `${scrollPercent * 100}%`);
    }
  }, [tabRef.current, scrollPercent]);


    <div className="scroll-bar">
            <span className="scroll-bar-item" ref={tabRef} />
          </div>

6.打开收银台

  try {
        JSON.parse(resParams);
        const res = JSON.parse(resParams);
        if (+res.code === 0) {
          props.history.push(`/h5/pay/result${window.location.search}`);
        } else {
          Toast.show(res.message);
        }
      } catch (error) {
        // form
        const form = document.createElement('div');
        form.innerHTML = `${resParams}`;
        document.body.appendChild(form);
        // @ts-ignore
        document.getElementById('cashierSubmit')?.submit();
      }

7.处理下拉框数据  使用Obiect.keys方法

     <ProFormSelect
                  disabled={readOnly}
                  width="md"
                  fieldProps={{
                    options: lastGroupPlanEnum,
                    mode: 'multiple',
                  }}
                  name="lastGroupPlan"
                  label="去年未选择以下方案需要过健告"
                />

//等同于
      const { Option } = Select;
      <ProForm.Item noStyle>
                  <Form.Item label="去年未选择以下方案需要过健告" name="lastGroupPlan">
                    <Select
                      mode="multiple"
                      disabled={readOnly}
                    >
                      {Object.keys(lastGroupPlanEnum || {})?.map((item: any) => {
                      return (
                        <Option value={item}>
                          {item}:{lastGroupPlanEnum[item]}
                        </Option>
                      );
                    })}
                    </Select>
                  </Form.Item>
                </ProForm.Item>

8.backTo转码

encodeURI是对url中的查询字符串部分进行转义

encodeURIComponent对整个url进行转义,包括空格、英文冒号、斜杠等

至于decodeURI和decodeURIComponent,只要知道decodeURI和encodeURI是互逆操作,decodeURIComponent和encodeURIComponent是互逆操作就可以了

const searchParams = getSearchParams();    
searchParams.backTo = encodeURIComponent(window.location.href);
    window.location.replace(`/h5/login?${qs.stringify(searchParams)}`);



    if (backTo) {
      const backToUrl = new URL(decodeURIComponent(backTo));
      projectNo = backToUrl.searchParams.get('projectNo') || '';
    }

9.将枚举值数组处理为键值对对象

 const data = res.reduce((memo, item) => {
        memo[item.code] = item.name;
        return memo;
      }, {});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSCD,即“Cloud Service for Big Data”,是一种基于云计算的大数据处理方法。它可以有效地解决传统大数据处理中的一些问题,如数据存储、数据处理、数据分析等。CSCD能够通过云计算技术实现大规模数据的存储、处理和分析,同时提供了可靠、高效、安全、灵活的数据处理服务。CSCD的优势在于它可以帮助企业降低成本、提高效率、加快数据处理速度,从而更好地为用户提供优质的服务。 ### 回答2: CSCD是一个用于大数据处理方法。CSCD代表"并行分布式计算",是指将大规模数据集分解成较小的数据块,并通过在多个计算节点上并行执行任务来处理这些数据块。CSCD方法具有以下几个特点和优势。 首先,CSCD方法能够提高数据处理的速度和效率。通过将数据集分解为多个小块,并在多个计算节点上并行执行任务,可以同时处理多个数据块,从而大大缩短处理时间。这使得CSCD方法非常适用于处理大规模数据集和复杂的计算任务。 其次,CSCD方法具有良好的可伸缩性和扩展性。由于CSCD方法可以利用分布式计算资源,可以根据需要增加或减少计算节点的数量,以适应不同规模和需求的数据处理任务。这使得CSCD方法能够应对不断增长的数据量和计算复杂度。 此外,CSCD方法还具有较好的容错性和稳定性。由于CSCD方法将数据集分解成多个小块,并在多个计算节点上执行任务,即使某个节点出现故障,其他节点仍然可以继续工作,从而保证整个数据处理过程的稳定性和可靠性。 总之,CSCD是一种适用于大数据处理方法,通过并行分布式计算能够提高数据处理的速度和效率,具有良好的可伸缩性和扩展性,并且具备较好的容错性和稳定性。这使得CSCD成为处理大规模数据集和复杂计算任务的重要手段。 ### 回答3: CSCD(Coarse-grained Streaming Cube Decomposition)是一种针对大数据处理方法。大数据是指数据量非常庞大且传统的数据处理方法无法高效处理的数据集合。CSCD通过将大数据切割成多个较小的数据块,然后利用并行计算的方式对这些数据块进行处理。 CSCD方法的核心思想是将大数据集合拆分成多个小的数据块,然后对每个数据块进行处理。这样的处理方式具有以下几个优势。首先,小数据块的处理速度相对较快,可以降低处理整个数据集合所需的时间。其次,拆分成小数据块后,可以利用并行计算的方法同时处理多个数据块,提高数据处理的效率。最后,CSCD方法还可以减少内存的使用,因为每次只处理一个小数据块,无需同时将整个大数据集合加载到内存中。 CSCD方法的实现过程可以分为两个步骤。首先,对大数据集合进行分块。可以根据数据的关系或者特定的分块策略将数据划分为相同大小的数据块。其次,将每个数据块分配给不同的处理单元,进行并行计算。每个处理单元使用特定的处理算法对数据块进行处理,并将处理结果汇总。 CSCD方法在大数据处理领域有着广泛的应用。例如,在数据分析和挖掘中,可以使用CSCD方法处理大量的数据,发现隐藏的模式和规律。在机器学习和人工智能领域,CSCD方法可以用于训练大规模的模型,提高算法的性能。此外,CSCD方法还可以应用于网络流量分析、金融风险管理等领域。 总之,CSCD是一种针对大数据处理方法,通过拆分大数据集合为小数据块,并利用并行计算的方式进行处理,能够提高数据处理的效率和速度,减少内存的占用。该方法在各个领域都有广泛的应用潜力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值