数组操作常用操作实例

1,去掉一个数组的重复元素

Array.prototype.unique = function() { var ret = []; var o = {}; for(var i=0, len=this.length; i<len; ++i){ if(!o[this[i]]){ ret.push(this[i]); o[this[i]] = this[i]; } } return ret; } var arr = [1,2,3,1,1,3,3,4,5,6,5,5,5,5,7,8,9,10,9,9,9]; var unique = arr.unique(); console.log(unique); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2,获取一个数组中的重复项

var arr = [1,2,3,1,1,3,3,4,5,6,5,5,5,5,7,8,9,10,9,9,9]; Array.prototype.delete = function() { var arr = this; var obj = {}; var delArr = []; for (var i = 0, l=arr.length; i < l;) { var key = arr[i]; if (typeof obj[key] == 'undefined') { obj[key] = "1"; i++; continue; } delArr.push(arr.splice(i, 1)[0]); var l = arr.length; } return delArr; } var delArr = arr.delete();//[1, 1, 3, 3, 5, 5, 5, 5, 9, 9, 9]

3,求一个字符串的字节长度,包括:一个英文字符占用一个字节、一个中文字符占用两个字节。

(function getByte(str) { var num = 0; for (var i = 0, l = str.length; i < l; i++) { if (str.charCodeAt(i) > 255) { num += 2; } else { num++; } } alert(num); })("你好,John!")

4,判断一个字符串中出现次数最多的字符,统计这个次数

//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数 var str = "abcdefgaddda"; var obj = {}; for (var i = 0, l = str.length; i < l; i++) { var key = str[i]; if (typeof obj[key] == 'undefined') { obj[key] = 1; } else { obj[key]++; } } /*遍历这个hash table,获取value最大的key和value*/ var max = -1; var max_key = ""; var key; for (key in obj) { if (max < obj[key]) { max = obj[key]; max_key = key; } } alert("max:"+max+" max_key:"+max_key);

5,数组排序

function sortNumber(a, b) { return a - b } var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" document.write(arr + "<br />") document.write(arr.sort(sortNumber))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值