JavaScript重复元素处理:统计、字节计算与去重实现
本文深入解析JavaScript中处理重复元素的多种场景,涵盖统计字符串中出现次数最多的字符、计算含中英文混合字符串的字节长度,以及实现数组和字符串的去重方法。通过哈希表原理与原型链扩展,提供实用的代码示例与工具推荐,帮助开发者高效解决数据清洗问题。
JavaScript重复元素处理概述
本文详细介绍JavaScript中处理重复元素的多种常见场景及解决方案,供读者参考学习。
统计字符串中出现次数最多的字符
首先探讨如何找出字符串中出现频率最高的字符,并统计其具体出现次数。
字符统计代码实现
//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数
var str = "abcdefgaddda";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
var key = str[i];
if (!obj[key]) {
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);
计算字符串的字节长度
接着介绍如何编写函数,准确计算一个字符串所占用的字节长度。
在此需明确一个基本前提:
英文字符通常占用1个字节,而中文字符通常占用2个字节。
字节长度计算代码实现
function GetBytes(str){
var len = str.length;
var bytes = len;
for(var i=0; i<len; i++){
if (str.charCodeAt(i) > 255) bytes++;
}
return bytes;
}
alert(GetBytes("你好,as"));
数组去重方法
随后展示如何编写方法,从数组中剔除重复的元素。
数组去重代码实现
var arr = [1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique = function(){
var ret = [];
var o = {};
var len = this.length;
for (var i=0; i<len; i++){
var v = this[i];
if (!o[v]){
o[v] = 1;
ret.push(v);
}
}
return ret;
};
alert(arr.unique());
字符串去重方法
此外,还介绍了如何去除字符串中所有重复出现的内容。
字符串去重代码实现
var arr = '112332454678';
String.prototype.unique = function(){
var ret = [];
var o = {};
var len = this.length;
for (var i=0; i<len; i++){
var v = this[i];
if (!o[v]){
o[v] = 1;
} else {
o[v] = 2;
}
}
for(var k in o){
if (o[k]==1) {
ret.push(k);
};
}
return ret;
};
alert(arr.unique());
相关在线工具推荐
PS:这里再为大家提供几款去重复工具供大家参考使用:
在线去除重复项工具: http://tools.jb51.net/code/quchong
在线文本去重复工具: http://tools.jb51.net/aideddesign/txt_quchong
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
JavaScript函数定义的三种方式:声明、表达式与箭头函数
2026-11-05 13:50:55
JavaScript中escape、encodeURI和encodeURIComponent对空格的处理差异
2026-11-05 12:47:23
