如何删除阵列重复 - 的JavaScript [英] How to remove duplicates from array - javascript
本文介绍了如何删除阵列重复 - 的JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:结果
取下阵列复制
你能帮我了。我有这片code ..
Could you please help me out. I have this piece of code..
<html>
<head>
<title>test</title>
<script>
var array = new Array();
function insert(val){
array[array.length]=val;
}
function show() {
var string="";
for(i = 0; i < array.length; i++) {
string =string+array[i]+' , ';
}
if(array.length > 0)
document.getElementById('result').innerHTML = string;
}
function removeDuplicateElement(arrayName)
{
var newArray=new Array();
label:for(var i=0; i<arrayName.length;i++ )
{
for(var j=0; j<newArray.length;j++ )
{
if(newArray[j]==arrayName[i])
continue label;
}
newArray[newArray.length] = arrayName[i];
}
return newArray;
document.getElementById('result1').innerHTML = newArray;
}
</script>
</head>
<body>
<h2>Demo</h2>
<form name="form1">
<input id="userinput" type="text" name="Input"/>
<input type="button" Value="Add" onclick="insert(getElementById('userinput').value),show();"/>
<input type="button" Value="Substract" onclick="removeDuplicateElement(array);"/>
</form>
<textarea style="border:1px solid #B3B3B3; width:218px;" rows="2" cols="30" type="text" id="result"></textarea>
<textarea style="border:1px solid #B3B3B3; width:218px;" rows="2" cols="30" type="text" id="result1"></textarea>
</body>
</html>
和我是想实现删除重复的功能,我发现在互联网上没有任何成功。 (见下文),我在做什么错了?
And I was trying to implement the remove duplicate function I found on the internet without any success. (see below) What am I doing wrong?
function removeDuplicateElement(arrayName)
{
var newArray=new Array();
label:for(var i=0; i<arrayName.length;i++ )
{
for(var j=0; j<newArray.length;j++ )
{
if(newArray[j]==arrayName[i])
continue label;
}
newArray[newArray.length] = arrayName[i];
}
return newArray;
}
感谢您!
推荐答案
有几个(希望)有用code提示:
A few (hopefully) useful code tips:
- 请不要使用
新的Array()
,除非你想一个数组,这是一个固定大小(异常)。使用[]
代替。 -
arr.push(项目)
是一回事改编[arr.length] =项目
,除了更好。 - 在
显示该环
函数可以使用实现array.join('')
。
- Don't use
new Array()
unless you want to make an array that's a fixed size (unusual). Use[]
instead. arr.push(item)
is the same thing asarr[arr.length] = item
, except better.- That loop in your
show
function can be accomplished usingarray.join(' , ')
.
总之,实际的问题是在这里:
Anyway, the actual problem is here:
return newArray;
document.getElementById('result1').innerHTML = newArray;
收益
退出函数。它看起来像你想取出收益
部分。
return
exits the function. It looks like you want to take out the return
part.
...但无论如何,这code是pretty浪费。我会写为:
... but anyway, that code is pretty wasteful. I would write it as:
function removeDuplicateElements(array) {
document.getElementById('result1').innerHTML =
array.filter(function(item, index) {
return array.indexOf(item) !== index;
});
}
...假设支持现代浏览器阵列#的indexOf
和阵列#过滤器
。
这篇关于如何删除阵列重复 - 的JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文