js 常用数据处理

1. 将数组中相同key 值 内容叠加

var s = [
[ 
{"code": "a", "poll": 7},
{"code": "b", "poll": 2}
],
[
{"code": "c", "poll": 18},
{"code": "a", "poll": 5},
],
[
{"code": "c", "poll": 12},
{"code": "a", "poll": 1}
]
];
var arr = [];
for (var i = s.length - 1; i >= 0; i--) {
for (var j = s[i].length - 1; j >= 0; j--) {
arr.push(s[i][j]);
}
} //多维数组要转化为单一数组

var news = [];
for(var i=0;i<arr.length;i++){
if(!news[arr[i]['code']]){
news[arr[i]['code']] = 0;
}
news[arr[i]['code']] += arr[i].poll;
}
console.log(news);

2. 根据对象中某value 值进行排序

var array = [
  {name: 'a', phone: 1},
  {name: 'b', phone: 5},
  {name: 'd', phone: 3},
  {name: 'c', phone: 4}
]
array.sort(getSortFun('desc', 'phone'));
function getSortFun(order, sortBy) {
  var ordAlpah = (order == 'asc') ? '>' : '<';
  var sortFun = new Function('a', 'b', 'return a.' + sortBy + ordAlpah + 'b.' + sortBy + '?1:-1');
  return sortFun;
}

3. 获取当前时间

Date.prototype.getCurrendTime= function() {
	var s = '';
	var mouth = (this.getMonth() + 1) >= 10 ? (this.getMonth() + 1) : ('0' + (this.getMonth() + 1));
	var day = this.getDate() >= 10 ? this.getDate() : ('0' + this.getDate());
	s += this.getFullYear() + '-'; // 获取年份。
	s += mouth + "-"; // 获取月份。
	s += day; // 获取日。
	return(s); // 返回日期。
};
var date = new Date();
data.getCurrendTime();

4.利用filter 去重

var arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];

var r = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
  });

alert(r);

5. js数组按照指定字来排序

var objs = [
    {'name': 'A', 'type': 'fly'},
    {'name': 'B', 'type': 'blur'},
    {'name': 'C', 'type': 'wipe'},
    {'name': 'D', 'type': 'cube'},
    {'name': 'E', 'type': 'iris'},
    {'name': 'F', 'type': 'fade'}
];
 
objs.sort(function(a,b){
    // order是规则bai  objs是需du要排序的zhi数组dao
    var order = ["wipe", "fly", "iris", "flip", "cube",
        "blur", "zoom", "fade", "glow", "rotate"];
    return order.indexOf(a.type) - order.indexOf(b.type);
});
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值