文章分类 Classification
JS两数组对比问题
稿件来源: 互联网 撰稿作者: 匿名 发表日期: 2011-10-10 阅读次数: 306 查看权限: 游客查看
偶尔需要我们比较两个数组,在一个数组中删除另一个数组存在的值。
偶尔需要我们比较两个数组,在一个数组中删除另一个数组存在的值。我们常常用的方法是循环比较判断并删除,最近看到另一个好方法巧妙删除的例子:
<script language="javascript"> var arr1 = ["i", "b", "c", "d", "e", "f","x"]; //数组A var arr2 = ["a", "b", "c", "d", "e", "f", "g"];//数组B var temp = []; //临时数组1 var temparray = [];//临时数组2 for (var i = 0; i < arr2.length; i++) { temp[arr2[i]] = true;//巧妙地方:把数组B的值当成临时数组1的键并赋值为真 }; for (var i = 0; i < arr1.length; i++) { if (!temp[arr1[i]]) { temparray.push(arr1[i]);//巧妙地方:同时把数组A的值当成临时数组1的键并判断是否为真,如果不为真说明没重复,就合并到一个新数组里,这样就可以得到一个全新并无重复的数组 } ; }; document.write(temparray.join(",") + "<br />"); </script>
<% Dim arr_a,arr_b,i,str arr_a=Split("1,2,3,4,a",",") arr_b=Split("1,2,3,a,51,v,b,f,e",",") For i=0 To UBound(arr_a) Session(arr_a(i))=True Next For i=0 To UBound(arr_b) If Session(arr_b(i))=True Then Else str=str&","&arr_b(i) End If Next Response.write Mid(str,2) '利用同样的道理我们也可以通过asp的session比较两个数组.因asp数组键天生不支持字符串. %>
<?php $arra = array("a","b","c"); $arrb = array("a","b","c","12","eb","db",3,21); $temp = array(); $str =""; foreach($arra as $value){ $temp[$value]=true; } foreach($arrb as $value){ if(!$temp[$value]){ $str=$str.",".$value; } } echo substr($str,1); //php相对强大一点,操作更方便 ?>
关键词: js,数组,数组比较 编辑时间: 2011-10-11
0
高兴1
支持0
搞笑0
不解0
谎言0
枪稿0
震惊0
无奈0
无聊0
反对0
愤怒
75%(3)
25%(1)
- 【游客】let temp = arr1.map(vel => vel);
arr2 = arr2.filter(vel => !temp.includes(vel)) [2017-03-30 15:06:16]
文章图片 article Pictrue
网友评论