如何从 Javascript 中的数组中删除重复项?
Posted
技术标签:
【中文标题】如何从 Javascript 中的数组中删除重复项?【英文标题】:How to Remove Duplicates From Array in Javascript? 【发布时间】:2015-01-25 06:42:32 【问题描述】:这里我有两个多行文本框,并在两个文本框中输入一些数据,例如 txt1 1,1,1,2,2,2,3 txt2 1,2,3,4,5, 当我按下过滤器按钮时,它会在第三个文本框中显示数据,例如 txt3 4,5(两个文本框都有这些数字) 我的sn-p是
<script type="text/javascript">
function GetDistinctElements(source,source1, target)
var input = source.value.trim().replace(';', ',').split(',');
var input1 = source1.value.trim().replace(';', ',').split(',');
var Array = input.concat(input1);
var distinctArray = Array.filter(function (item, pos)
return Array.indexOf(item) == pos;
);
target.value = distinctArray.join(',');
</script>
我的控件是
<table border="0" align="left">
<tr>
<td>Enter Numbers:</td>
<td> <asp:TextBox ID="txt1" TextMode="MultiLine" runat="server"></asp:TextBox></td>
<td>Enter Numbers:</td>
<td><asp:TextBox ID="txt2" TextMode="MultiLine" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td><input type='button' value='Get Distinct Items' onclick='GetDistinctElements(<%= txt1.ClientID %>,<%= txt2.ClientID %>,<%= txt3.ClientID %>); return false;' /></td>
<td><asp:TextBox ID="txt3" TextMode="MultiLine" runat="server"></asp:TextBox></td>
</tr>
</table>
当我尝试这个 sn-p 时,我没有得到预期的输出。
【问题讨论】:
***.com/questions/4343746/… ***.com/questions/2523436/… “我没有得到预期的输出。” - 你可能更清楚预期的输出实际上是什么。您是否得到了其他输出,或者浏览器的开发控制台中出现错误? txt1: 1,1,1,2,2,2,3 txt2: 1,2,3,4,5,当我按下过滤器按钮时,它会在第三个文本框中显示数据,如 txt3:1 ,2,3(两个文本框 【参考方案1】:替换这个:
var Array = input.concat(input1);
var distinctArray = Array.filter(function (item, pos)
return Array.indexOf(item) == pos;
);
通过这个:
var input2 = input.concat(input1);
input2.sort(function(a,b)return a-b);
var prev= null;
var distinctArray = input2.filter(function (item, pos)
if (item == prev)
return false;
prev = item;
return true;
);
【讨论】:
,感谢您的回复...但它在第三个文本框中显示两个文本框值,例如 t1:1,2,3.t2:1,3,4,5 t3:1,2,3 ,1,3,4,5 通过添加input2.sort();
修复了这个问题【参考方案2】:
我得到了答案
function GetDistinctElements(source,source1, target)
// Get the items in your input
var input = source.value.trim().replace(';', ',').split(',');
var input1 = source1.value.trim().replace(';', ',').split(',');
input1 = input1.filter(function (val)
return input.indexOf(val) == -1;
);
// Output the result in target area
target.value = input1.join(',');
【讨论】:
以上是关于如何从 Javascript 中的数组中删除重复项?的主要内容,如果未能解决你的问题,请参考以下文章