做项目遇到的问题(一):JS中如何将第二个数组与第一个数组重复的元素,从第一个数组中删除?

569 阅读1分钟

最近一直在做项目,过程中遇到过很多问题,现在把遇到的问题记录下来,和大家一起分享!

问题描述

请求后台2个接口,返回了2组不同的数组,其中,数组arr2中的数据在数组arr1都有,需要在数组arr1中将数组arr2与数组arr1相同的元素,从数组arr1中删除。

方法一

<script>
	let arr1 = ['a', 'c', 'b', 'd', 'e', 'f', 'g']
	let arr2 = ['b', 'd', 'g']

	function removeRepeat(arr1, arr2) {
		for (let i = 0; i < arr2.length; i++){
			for(let j = 0; j < arr1.length; j++){
				if(arr2[i] === arr1[j]){
					// 删除arr1数组里和arr2数组中相同的元素
					arr1.splice(j, 1)
				}  
			}
		}
		// 返回数组arr1
		return arr1
	}
    
	let result = removeRepeat(arr1, arr2)
	// 控制台打印输出结果
	console.log("arr1: ", result) 
</script>

方法二

<script>
	let arr1 = ['a', 'c', 'b', 'd', 'e', 'f', 'g']
	let arr2 = ['b', 'd', 'g']

	arr1 = arr1.filter(item => !arr2.includes(item))

	// 控制台打印输出结果
	console.log("arr1: ", arr1) 
</script>

结果

arr1: ["a", "c", "e", "f"]