`
hjx594812735
  • 浏览: 19575 次
  • 来自: 武汉
社区版块
存档分类
最新评论

js数组去除重复

    博客分类:
  • js
 
阅读更多

记得之前做项目的时候,想实现一个功能,就是让多个对象保存到前端js的Array中,且保存的内容不能重复,最后将这个保存的Array数组一次全部提交到后台,当时为了实现功能也没怎么优化代码。最后回头看看代码,感觉糟糕透顶,于是修改后成了下面的方法!

 

// 删除数组中第一个匹配的元素,成功则返回位置索引,失败则返回 -1
Array.prototype.deleteElementByValue = function(element) {
	var numDeleteIndex = -1;
	for (var i = 0; i < this.length; i++) {
		// 严格比较,即类型与数值必须同时相等
		if (this[i] === element) {
			this.splice(i, 1);
			numDeleteIndex = i;
			continue;
	}
		}
	return numDeleteIndex;
}
 使用方式如下
var tempArrays = new Array();
tempArrays.push("a");
tempArrays.push("b");
tempArrays.push("c");
tempArrays.deleteElementByValue("a");
 
// 验证数组中是否存在相同的元素内容
Array.prototype.isElementByValue = function(element) {
	for (var i = 0; i < this.length; i++) {
		// 严格比较,即类型与数值必须同时相等
		if (this[i] === element) {
			return true;
		}
	}
	return false;
}
  使用方式如下
var tempArrays = new Array();
tempArrays.push('a');
tempArrays.push('b');
tempArrays.push('c');

if(tempArrays.isElementByValue('c')){
    tempArrays.push('d');
}else{
    tempArrays.push('e');
}
 
// 新增数组元素,避免出现相同的元素内容
Array.prototype.addElementByValue = function(element) {
	if (!this.isElementByValue(element)) {
		this.push(element);
	}
}
 使用方式如下
var tempArrays = new Array();
tempArrays.addElementByValue('a');
tempArrays.addElementByValue('b');
tempArrays.addElementByValue('c');
tempArrays.addElementByValue('a');
for(x in tempArrays){
   console.log(tempArrays[x]);
}
 以下打印的结果:
 

 这里只打印了三个字符串,但是我们却设值了四个,原因是设值第2个字符串‘a’的时候发现该数组内存在字符串‘a’,所以就不会push操作了,这种设值方式对我们进行数组设值得时候去除重复还是挺有用的!发财
  • 大小: 14.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics