你能帮我解决一下吗?我有这段代码..
<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>
我正在尝试实现我在互联网上找到的删除重复功能,但没有任何成功。 (见下文)我做错了什么?
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;
}
谢谢!
答案 0 :(得分:3)
一些(希望)有用的代码提示:
new Array()
。请改用[]
。arr.push(item)
与arr[arr.length] = item
相同,只是更好。show
函数中的循环可以使用array.join(' , ')
完成。无论如何,实际问题在于:
return newArray;
document.getElementById('result1').innerHTML = newArray;
return
退出该功能。看起来你想要取出return
部分。
...但无论如何,这段代码非常浪费。我会把它写成:
function removeDuplicateElements(array) {
document.getElementById('result1').innerHTML =
array.filter(function(item, index) {
return array.indexOf(item) !== index;
});
}
...假设支持Array#indexOf
和Array#filter
的现代浏览器。