记得之前做项目的时候,想实现一个功能,就是让多个对象保存到前端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操作了,这种设值方式对我们进行数组设值得时候去除重复还是挺有用的!
本文介绍了一种在前端JavaScript中优化数组操作的方法,包括如何删除指定元素、检查元素是否存在及添加唯一元素,这些技巧有助于避免数组中出现重复项。
401

被折叠的 条评论
为什么被折叠?



