添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1.最近写一个报表功能,sql返回的数据是这样的

{date:“2019-01-05”,model:TaxeDetailModel };

{date:“2019-01-05”,model:TaxeDetailModel};

{date:“2019-01-05”,model:TaxeDetailModel};

{date:“2019-01-04”,model:TaxeDetailModel};

{date:“2019-01-04”,model:TaxeDetailModel};

前端需要的是{date:“2019-01-05”,list:};{date:“2019-01-04”,list:}这样的数据,就是把日期相同的合并用来展示,下面是去重合并的方法

//An highlighted block
dupRem(list: Array<{ date: string, taxModel: TaxeDetailModel }>): Array<{ date: string, taxModelList: Array<TaxeDetailModel> }> {
    let map = {};
    let need = new Array<{ date: string, taxModelList: Array<TaxeDetailModel> }>();
    for (let i = 0; i < list.length; i++) {
      let ai = list[i];
      if (!map[ai.date]) {
        need.push({
          date: ai.date,
          taxModelList: [ai.taxModel]
        });
        map[ai.date] = ai;
      } else {
        for (let i = 0; i < need.length; i++) {
          var dd = need[i];
          if (dd.date == ai.date) {
            dd.taxModelList.push(ai.taxModel);
            break;
    return need;
                                    1、Array.filter() + indexOf  —>耗时 10926
方法思路:将两个数组拼接为一个数组,然后使用 ES6 中的 Array.filter() 遍历数组,并结合 indexOf 来排除重复项。
function distinct(a, b) {
    let arr = a.concat(b);
    return arr.filter((item, index)=> {
        return arr.indexOf(item) === index
                                    用typescript写的简单的去重方法
关联查询经常用到left join,就会有重复的左表的数据产生,在service里面处理去重,只拿一条即可,先把所有的数据都push到一个数组,再对这个数组进行去重(按照不变的字段,如id)
//An highlighted block
uniq(array: Array&lt;TaxeDetailModel&gt;): Array&lt;TaxeDeta...