本文分享一些js数组操作的例子,分别为:
1,去掉重复的数组元素。
2,获取一个数组中的重复项。
3,求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节。
4,判断一个字符串中出现次数最多的字符,统计这个次数。
5,,数组排序
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))