1、数组对象元素相同,分组显示
 
let arry = [
{ expensedate: '2018/09/29', amount: 1, type: '交通费' },
{ expensedate: '2018/08/19', amount: 2.5, type: '补贴费' },
{ expensedate: '2018/09/29', amount: 6.3, type: '住宿费' },
{ expensedate: '2018/01/19', amount: 18.5, type: '采购经费' },
{ expensedate: '2018/09/22', amount: 8.4, type: '活动经费' },
{ expensedate: '2018/09/29', amount: 7.9, type: '材料打印费' }
]
let items = [];
let datelist = {};
for (let i = 0; i < arry.length; i++) {
let element = arry[i];
if (!datelist[element.expensedate]) {
items.push({
expensedate: element.expensedate,
subitems: [element]
})
datelist[element.expensedate] = element;
} else {
for (let j = 0; j < items.length; j++) {
let subment = items[j];
if (subment.expensedate == element.expensedate) {
subment.subitems.push(element)
}
}
} }
console.log(items);

2、数组对象元素相同,汇总显示

let arrys = [
{ expensedate: '2018/09/29', amount: 1, type: '交通费' },
{ expensedate: '2018/08/19', amount: 2.5, type: '补贴费' },
{ expensedate: '2018/09/29', amount: 6.3, type: '交通费' },
{ expensedate: '2018/01/08', amount: 18.5, type: '采购经费' },
{ expensedate: '2018/09/22', amount: 8.4, type: '活动经费' },
{ expensedate: '2018/09/29', amount: 7.9, type: '交通费' }
]
let otheritems = [];
let list = {};
for (let i = 0; i < arrys.length; i++) {
let element = arry[i].expensedate;
if (list[element]) {
list[element].expensedate = list[element].expensedate;
list[element].amount = list[element].amount + arrys[i].amount;
} else {
list[element] = {};
list[element].expensedate = arrys[i].expensedate;
list[element].amount = arrys[i].amount;
}
list[element].type = arrys[i].type;
}
//对象转数组
for (var i in list) {
otheritems.push(list[i])
}
console.log(otheritems)

在Javascript中数组对象(json)里元素相同的操作的更多相关文章

  1. JavaScript中数组对象详解

    Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var li ...

  2. javascript中数组常用方法总结

    原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...

  3. JavaScript中数组Array方法详解

    ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...

  4. javascript之数组对象与数组常用方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. javascript中数组的常用算法深入分析

    Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...

  6. javascript中数组化的一般见解

    javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法. 数组化的一般方法 1.第一种也是我们最 ...

  7. 总结Javascript中数组各种去重的方法

    相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...

  8. JavaScript中数组Array.sort()排序方法详解

    JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编 ...

  9. JavaScript中数组的使用

    ---恢复内容开始--- 创建数组 1,通过 var arr1 = [1,2,3] 2通过使用 var arr2 = new Array(1,2,3) 在这里创造的数组实际上都是一个对象,然后把对象的 ...

随机推荐

  1. prometheus + grafana + node_exporter + alertmanager 的安装部署与邮件报警 (一)

    大家一定要先看详细的理论教程,再开始搭建,这样报错后才容易找到突破口 参考文档 https://www.cnblogs.com/afterdawn/p/9020129.html https://www ...

  2. [LeetCode] Preimage Size of Factorial Zeroes Function 阶乘零的原像个数函数

    Let f(x) be the number of zeroes at the end of x!. (Recall that x! = 1 * 2 * 3 * ... * x, and by con ...

  3. puppeteer 填充基础表单

    main.js const pptr = require("puppeteer"); const gotoUrl = "http://127.0.0.1:5500/ind ...

  4. Codeforces Round #509 (Div. 2)

    咕咕咕了好多天终于有时间写篇博客了_(:з」∠)_ 打网赛打到自闭的一周,终于靠这场CF找回了一点信心... 1041A - Heist \(ans=max\left \{ a_i \right \} ...

  5. 如何彻底卸载Jenkins

    起因: 最近在做持续集成测试过程中遇到一个问题,之前部署的Jenkins管理员密码忘了之后无法登陆,而且删除掉tomcat下webapps文件夹中的Jenkins目录后,再次安装Jenkins后相关的 ...

  6. mysql 查询 练习题及答案

    CREATE DATABASE school;USE school;/*1.创建student表格*//*id为主键 非空 唯一 */CREATE TABLE student (id INT(10) ...

  7. [ipsec][crypto] IKEv2的协商交互分析

    一: 无论协商了什么样的加密算法.DH都交换一块长度为32byte的内存,作为key. IKE和esp的key,分别基于这块内存生成. 二: 当esp的算法协商没有指定dh group时,rekey将 ...

  8. Elasticsearch学习笔记(八)Elasticsearch的乐观锁并发控制

    一.基于_version的乐观锁并发控制                 语法:PUT /test_index/test_type/id?version=xxx             更新时带上数据 ...

  9. dvi文件和将dvi文件转换成pdf格式

    dvi文件和将dvi文件转换成pdf格式 Latex只能把tex文件编译成dvi文件, 在cmd 中: 使用xdvi查看dvi格式的文件 若用texstudio编辑tex文件,则可直接将已编译成功的. ...

  10. Linux主机之间ssh免密登录配置方法

    由于公司的生产环境有很多台Linux的CentOS服务器, 为了方便机子(假设两台机子A,B)互相之间免密ssh, scp命令操作,配置如下 1. 在A.B上分别创建本机的公钥和私钥,输入命令后连续三 ...