在Javascript中数组对象(json)里元素相同的操作
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)里元素相同的操作的更多相关文章
- JavaScript中数组对象详解
Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var li ...
- javascript中数组常用方法总结
原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...
- JavaScript中数组Array方法详解
ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...
- javascript之数组对象与数组常用方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- javascript中数组化的一般见解
javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法. 数组化的一般方法 1.第一种也是我们最 ...
- 总结Javascript中数组各种去重的方法
相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...
- JavaScript中数组Array.sort()排序方法详解
JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编 ...
- JavaScript中数组的使用
---恢复内容开始--- 创建数组 1,通过 var arr1 = [1,2,3] 2通过使用 var arr2 = new Array(1,2,3) 在这里创造的数组实际上都是一个对象,然后把对象的 ...
随机推荐
- css3图形绘制
以下几个例子主要是运用了css3中border.bordr-radius.transform.伪元素等属性来完成的,我们先了解下它们的基本原理. border:简单的来说border语法主要包含(bo ...
- Selenium 3----窗口截图+关闭浏览器
窗口截图 get_screenshot_as_file() 自动化用例是由程序执行的,因此有时候打印的错误信息并不十分明确.如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看 ...
- apache tomcat的安装
第一步:下载及安装. 1.首先进入apache的官网网址:www.apache.org 2.点击 projects 3.进入tomcat下载页面. 4.点击tomcat 9 5.认准是Binary D ...
- python基础5 while循环
一.while循环: while 条件: 代码块 例: n=0 while n<10: print(n) n=n+1 #n自加1 ,满足n<10,继续循环 输出结果: 1 2 3 4 ...
- c++ 第一次实验
实验内容: 2-28:实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selete one:”提示用户输入.A表示增加,D表示删除, S表示排序 ...
- Python_对Excel表进行操作
1.使用Python统计Excel表中的行数 import xlrd # 计算一个工作簿中所有Sheet表的行数 def count_book(work_book): workbook = xlrd. ...
- 微信小程序样式旋转
相关文档:http://www.w3school.com.cn/cssref/pr_transform.asp index.wxss文件 注意:如果是web前端,要注意浏览器的兼容性 .x1{ wid ...
- table-一列细分为多列(合并单元格)
这个是一个很常见的一个表格展示需求,其中最要的就两个属性 rowspan 和 colspan .他们分别就是合并行 与 合并列. 要做的效果是如图下面这个,联系电话就是合并了单元格.这个说法类似于ex ...
- springcloud学习第一坑
我是根据周立先生所写的<Spring+Cloud与Docker微服务架构实战>来学习SpringCloud的,我会记录下来我日常遇到的所有问题,包括但不仅只包括SpringCloud的问题 ...
- msmq访问格式
//集群测试,以下格式不行(应是Host映射之类没配置OK) //_MSMQPath = @"FormatName:DIRECT=TCP:msmq496-ha\private$\496-10 ...