比较两个数组,找出不一样的数据组成新数组

1、现在有两个数组

let arr1 = [1, 2, 3, 4, 5, 6, 7]

let arr2 = [1, 2, 3, 4, 8]

2、期望 arr1 和 arr2比较之后,得到新数组,如下:

let newArr = [5, 6, 7, 8]

3、实现

// 方式1
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res1 = [], res2 = [], res = []
res1.push( arr1.filter(item => {
	return !arr2.includes(item)
}))
res2.push( arr2.filter(item => {
	return !arr1.includes(item)
}))
res = res1.flat().concat(res2.flat())


// 方式2
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res1 = [], res2 = [], res = []
res1.push( arr1.filter(item => {
    return arr2.indexOf(item) === -1
}))
res2.push( arr2.filter(item => {
    return arr1.indexOf(item) === -1
}))
res = res1.flat().concat(res2.flat())


// 方式3
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res1 = [], res2 = [], res = []
for(let i = 0; i < arr1.length; i++){
	if(!arr2.includes(arr1[i])){
	    res1.push(arr1[i]);
	}
}
for(let i = 0; i < arr2.length; i++){
	if(!arr1.includes(arr2[i])){
	    res2.push(arr2[i]);
	}
}
res = res1.flat().concat(res2.flat())
console.log(res) // res就是比较后,不同的数据组成的新数组

就记录到这里,祝大家开心
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 要两个数组中不同的数,可以使用以下方法。首先,将两个数组分别存储在nums1和nums2中。然后,创建一个空的列表answer,用于存储不同的数。接下来,使用for循环遍历nums1中的数,判断是否在nums2中,如果不在,则将其添加到answer\[0\]中。然后,再使用for循环遍历nums2中的数,判断是否在nums1中,如果不在,则将其添加到answer\[1\]中。为了避免重复的数现在answer中,可以使用set函数来去除重复的数。最后,输answer即可得到不同的数。\[1\] 示例代码如下: ``` nums1 = \[1, 2, 3, 4, 5, 6, 7\] nums2 = \[1, 2, 3, 4\] answer = \[\[\], \[\]\] for i in set(nums1): if i not in nums2: answer\[0\].append(i) for j in set(nums2): if j not in nums1: answer\[1\].append(j) print(answer) ``` 输结果为:\[\[5, 6, 7\], \[\]\],表示nums1中的不同数为\[5, 6, 7\],nums2中的不同数为空列表。\[2\] 另外,还可以使用其他方法实现,比如使用filter函数和indexOf函数来筛选不同的数。具体代码如下: ``` nums1 = \[1, 2, 3, 4, 5, 6, 7\] nums2 = \[1, 2, 3, 4\] res1 = \[\] res2 = \[\] res = \[\] res1.append(list(filter(lambda x: x not in nums2, nums1))) res2.append(list(filter(lambda x: x not in nums1, nums2))) res = res1\[0\] + res2\[0\] print(res) ``` 输结果为:\[5, 6, 7\],与之前的方法得到的结果相同。\[3\] #### 引用[.reference_title] - *1* *2* [数组的不同](https://blog.csdn.net/gschen_cn/article/details/124010765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [比较两个数组不一样的数据组成数组](https://blog.csdn.net/qq_37600506/article/details/122602819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值