时间排序
时间排序要先把时间的时间戳算出来,然后添加到对象中。再进行比较,例:
var list = [{
date: '2020-11-12',
name: 'aa'
},
{
date: '2020-10-12',
name: 'aad'
},
{
date: '2020-11-13',
name: 'as'
},
{
date: '2019-11-15',
name: 'aw'
},
{
date: '2020-09-12',
name: 'av'
},
{
date: '2020-11-11',
name: 'ad'
},
]
list.forEach(function(item, index) {
// var date = (new Date(item.date).getTime())
var a = new Date(item.date);
var date = a.getTime(); // 遍历到时间戳
list[index]['time'] = date // 给对象添加时间戳属性
})
list.sort(function(a,b){
return a.time - b.time // 按照时间戳排序
})
for(var i = 0; i<list.length;i++){
delete list[i]['time'] // 如果比较完之后不需要时间戳属性可以删除
}
console.log(list) // 输出排序过后的数组
去重并计算每个元素重复出现多少次
首先我们要过滤出数组中不重复的键作为对象的键
var arr = ['a', 'b', 'c', 'a', 'b', 'd'];
var res = [];
res = arr.filter(function(item,index,array){
return array.indexOf(item) === index; //遍历出不重复的元素作为obj的键
})
console.log(res)
然后让去重后的数组中的元素作为对象的key并赋值为0
var obj = {};
for(var i = 0;i<res.length;i++){
obj[res[i]] = 0; //让res中的元素作为key并赋初始值为0
}
然后在原数组中遍历对象,遍历到一次自加一次,就可以看到每个元素出现了几次
for(var i =0;i<arr.length;i++){
for(var x in obj){
if(x == arr[i]){
++obj[x]; //每次相等进入此判断加1,表示出现了几次
}
}
}
console.log(obj)
数据重组
var data = [{
Id: 1,
title: "手冲咖啡6杯装(定制款)",
price: "59",
mack: '<span style="color: #FFFFFF;background: #AB7FD1; border-color: #AB7FD1">爆品</span>',
nice: "1742",
img_list_url: "http://bfs.biyao.com/group1/M00/C8/19/rBACYVzH_sGAfrzRAAA8joHI5YU396.jpg",
type_one: "咖啡",
type_two: "手冲咖啡",
},
{
Id: 1,
title: "伯爵咖啡",
price: "59",
mack: '<span style="color: #FFFFFF;background: #AB7FD1; border-color: #AB7FD1">爆品</span>',
nice: "1742",
img_list_url: "http://bfs.biyao.com/group1/M00/C8/19/rBACYVzH_sGAfrzRAAA8joHI5YU396.jpg",
type_one: "咖啡",
type_two: "手冲咖啡",
},
{
Id: 2,
title: "ANNY法式深焙袋冲咖啡2袋",
price: "39",
mack: '<span style="color: #FB4C81;background: ; border-color: #FB4C81">一起拼</span>',
nice: "910",
img_list_url: "http://bfs.biyao.com/group1/M00/51/BA/rBACW1uFacCAShDcAAA5qDQqJDo607.jpg",
type_one: "咖啡",
type_two: "咖啡粉",
},
{
Id: 2,
title: "鹊桥咖啡",
price: "39",
mack: '<span style="color: #FB4C81;background: ; border-color: #FB4C81">一起拼</span>',
nice: "910",
img_list_url: "http://bfs.biyao.com/group1/M00/51/BA/rBACW1uFacCAShDcAAA5qDQqJDo607.jpg",
type_one: "咖啡",
type_two: "咖啡粉",
},
];
遍历出type_two元素的值并存放在新数组中
var res = [];
var type_two = [];
for(var i = 0;i<data.length;i++){
var two = data[i].type_two;
type_two.push(two)
}
去除重复的type_two值,准备做数组中的对象的分类标志
var type_two = type_two.filter(function(item,index,array){
return type_two.indexOf(item) === index;
})
遍历type数组并创建新的对象存放type_two属性并赋值为去重后的type_two值,然后创建一个新属性用于存放过滤出的原数组的type_two值与对象中type_two值相同的元素
for(var i = 0;i<type_two.length;i++){
var obj = {};
obj.type_two = type_two[i] // 创建新属性,赋值为type_two数组中的元素
obj.list = data.filter(function(item){
return item.type_two === type_two[i] // 过滤出满足条件的元素返回给新属性
})
res.push(obj) // 循环一次后将添加属性后的obj添加到res数组中
}
console.log(res)
627

被折叠的 条评论
为什么被折叠?



