JavaScript实现给定两个数组,将第二个数组与第一个数组重复得元素,从第一个数组中删除。
首先
今天碰到一个这么个算法题,拿到题之后,脑子里就出现了关于数组的函数
splice(index,howmany,item1,…,itemX)
意思可向数组中添加或删除元素,第一个参数表示从第几项开始(包括第几项),第二参数表示删除/添加几个,第三、四、五……参数就表示添加了,也就是说:
只有两个参数时,表示删除元素
当有三个或三个以上时表示添加元素,注意第二个参数的变化
上代码
前提是你应该理解for循环
<script>
// 定义两个数组
var arr1=[1,2,3,4];
var arr2=[1,2]
// var arr1=["a","c","b","d","e"];
// var arr2=["a","c"]
console.log("arr1="+arr1)
console.log("arr2="+arr2)
arry=function(arr1,arr2){
// 取arr2中的每个元素和arr1每个元素比较
for(var i=0;i<arr2.length;i++){
for(var j=0;j<arr1.length;j++){
if(arr2[i]==arr1[j]){
// splice方法:第一个参数是从第几个元素开始,第二个元素代表删除几个
// eg:从第j个开始(包括j)删除1个
arr1.splice(j,1)
}
}
}
return arr1
}
var res= arry(arr1,arr2)
console.log("res="+res)
</script>
结果