当前位置: 首页 > news >正文

一起做网站吧网络推广公司官网

一起做网站吧,网络推广公司官网,投票网站建设,青田县住房和城乡规划建设局网站/*** param {Array} data - 原始数据集合* param {string} addParamer - 这个是自定义的参数,向每个对象中添加一个参数 按照这个参数的个数进行合并* param {} args - 剩余参数 这个是合并规则 ,比如按照时间合并 那就传入对象中的时间参数date&#xf…
/*** @param {Array} data - 原始数据集合* @param {string} addParamer - 这个是自定义的参数,向每个对象中添加一个参数 按照这个参数的个数进行合并* @param {} args - 剩余参数 这个是合并规则 ,比如按照时间合并 那就传入对象中的时间参数date, 如果有多个规则 例如同个时间内同一性别 那就传入date,sex,多个参数逗号隔开*/
function mergeColunm(data, addParamer, ...args) {// 计算合并的数量let count = 0// 获取相同的let sameTimePerson = JSON.parse(JSON.stringify(data[0]))// 获取相同的条件的个数let sameTimePersonArray = []let samePersonIds = [];for (let i = 0; i < data.length; i++) {const currentPerson = data[i]let isSame = isSameValueWithKey(sameTimePerson, currentPerson, args)if (isSame) {count++samePersonIds.push(currentPerson.id)} else {// 把之前统计的数据添加到数组sameTimePerson[addParamer] = countsameTimePerson.samePersonIds = samePersonIdssameTimePersonArray.push(sameTimePerson)/// 置空ID数组samePersonIds = []// 把当前数据ID添加进数组samePersonIds.push(currentPerson.id)// 重置数据count = 1sameTimePerson = JSON.parse(JSON.stringify(currentPerson))}// 把最后一个数据放入数组if (i == data.length - 1) {sameTimePerson[addParamer] = countsameTimePerson.samePersonIds = samePersonIdssameTimePersonArray.push(sameTimePerson)}}data.forEach(item => {item[addParamer] = 0for (let i = 0; i < sameTimePersonArray.length; i++) {let p = sameTimePersonArray[i]let isSame = isSameValueWithKey(item, p, args)if (isSame && p.samePersonIds.indexOf(item.id) !== -1) {const findIndex = data.findIndex(subItem => {let isSame = isSameValueWithKey(subItem, p, args)return isSame && p.samePersonIds.indexOf(subItem.id) !== -1})data[findIndex][addParamer] = p[addParamer]}}})return data
}function isSameValueWithKeys(objA, objB, ...args) {if (args.length === 0) {console.error('请传入对象 Key 来获取value值')return false}for (let key of keys) {if (!(key in objA) || !(key in objB)) {console.error('传入的Key不存在对象中')return false}if (objA[key] !== objB[key]) {return false;}}return true;
}

使用方法

这里以iView的Table组件为例。这里我们按照时间相同合并,并把计算的数量放在count里边。注意这里的返回值

<template><Table :data="resultData" border :span-method="handleSpan"></Table>
</template>
// 这里我们调用合并的方法,按照date相同的进行合并,并使用count作为统计数量
// data是原始数据   resultData是处理后带有count的数据 把这个数据绑定在table上
let resultData = mergeColunm(data, 'count', 'date')// 在这里返回想要合并的方式
handleSpan({row, column, rowIndex, columnIndex}) {// 假如我们想合并第四列 时间相同的行 那么就这样写if (columnIndex === 3) {return [row.count, 1];} 
}
http://www.mmbaike.com/news/93682.html

相关文章:

  • 大城 网站建设营销策划是做什么
  • 怎么用阿里云服务器做网站网络营销推广培训机构
  • 日本一级a做爰网站微信广告推广如何收费
  • 网站建设与架构男友实验长沙seo推广外包
  • 百度不收录新网站seo关键词快速排名
  • div css网站布局案...襄阳百度开户
  • 工业做网站百度竞价排名怎么做
  • 徐州市住房和城乡建设局网站首页谷歌浏览器下载
  • 上海网站建设备案号怎么恢复营销策略从哪几个方面分析
  • 广州市建设企业网站报价网络营销的主要工作有哪些
  • 什么网站能通过做任务赚钱广州网站seo公司
  • 什么软件做电影短视频网站最近几天发生的新闻大事
  • 云南 网站建设网站怎么营销自己的产品
  • 璧山网站建设游戏推广平台代理
  • 南京本地网站建站郑州seo学校
  • 无锡微信网站建设推广码怎么填
  • 卫浴网站设计重庆网站快速排名提升
  • 济宁网站设计想找搜索引擎优化
  • 网站建设开公司现在好做吗搜狗识图
  • 中国网络营销公司排名优化什么建立生育支持政策体系
  • 有空间怎么做网站ds2600ii色带
  • 怎样做网站刷qq会员永久网站seo分析
  • 广渠门网站建设深圳最新消息
  • 重庆网站建设吧seo推广主要做什么的
  • 给女朋友做情侣网站的程序员懂得网站推广
  • 济南网站建设 小程序百度官网认证多少钱
  • 广州的公司有哪些引擎seo优
  • 温州网站开发建设seo外链优化
  • 在网站做责编会很累吗进入百度一下官网
  • 模板网站修改教程淘宝定向推广