最笨的方法:
var list = [1, 2, 3, 6, 7, 8, 9, 1, 2, 3, 6]//有重复的数组var obj = {}//用于标记字符串
var arr = []//去掉重复后的数组
for (var i = 0, len = list.length i < len i++) {
var s = list[i]
if (obj[s]) continue//如果字符串已经存在就跳过
else {
obj[s] = s//加入标记对象中
arr.push(s)//结果放入新数组中
}
}
当jquery中有封装好的去重复方法,还有其他第三方js插件也存在去重复的方法。
用循环做. 把代码复制进一个html文件中在浏览器打开点击某一个li就可以看到效果了
<html><head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div id="list">
<li class="a1">第一个</li>
<li class="a12">第二个</li>
<li class="a13">第三个</li>
<li class="a14">第四个</li>
<li class="a51">第五个</li>
<li class="a16">第六个</li>
</div>
</body>
<script>
function js(id){ return document.getElementById(id) }
var li = js("list").getElementsByTagName("li").length
for(var i=0i<lii++)
{
js("list").getElementsByTagName("li")[i].onclick = function(){
this.remove()
}
}
</script>
</html>
JS中没有删除数组的现有方法,需要靠自己写,我这里提供点思路和例子供参考splice 方法
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
删除数组
方法一
/*
* 方法:Array.remove(dx) 通过遍历,重构数组
* 功能:删除数组元素.
* 参数:dx删除元素的下标.
*/
Array.prototype.remove=function(dx)
{
if(isNaN(dx)||dx>this.length){return false}
for(var i=0,n=0i<this.lengthi++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
}
a = ['1','2','3','4','5']
alert("elements: "+a+"\nLength: "+a.length)
a.remove(1)//删除下标为1的元素
alert("elements: "+a+"\nLength: "+a.length)
</script>
方法二
/*
* 方法:Array.baoremove(dx)
* 功能:删除数组元素.
* 参数:dx删除元素的下标.
* 返回:在原数组上修改数组.
* splice方法见http://www.w3school.com.cn/js/jsref_slice_array.asp
*/
Array.prototype.baoremove = function(dx)
{
if(isNaN(dx)||dx>this.length){return false}
this.splice(dx,1)
}
b = ['1','2','3','4','5']
alert("elements: "+b+"\nLength: "+b.length)
b.baoremove(1)//删除下标为1的元素
alert("elements: "+b+"\nLength: "+b.length)
</script>