页面获得两个数组中的不同元素,并生成数组

文章讲述了如何在JavaScript中操作可编辑列表A,通过找出A和B之间的差异元素数组C,以及使用数组组合和筛选技巧来确定哪些元素从A中被删除。作者提供了示例代码和注意事项,强调了在处理数组时对数组定义的检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:操作可编辑的列表A(A中都有一个ID来区分元素不是新增的数据),可新增、修改、删除,操作完毕后生成B,并把操作过程从A中删除的元素找到。

思路:找出A和B中的差异元素数组C,再取出有ID的元素数组D,D则为从A中删除的元素。

方法技巧:使用组合数组、筛选脚标的方式获取两数值的不同元素。

示例:

let arr1 = ['A','B','C'];
let arr2 = ['B','C','D','E'];
// 组合数组arr1,arr2的数据
let concatArr = arr1.concat(arr2);
// 筛选出数组arr1, arr2中不同的元素,并组合成一个新的数组返回
// 技巧:当concatArr中元素第一次出现和最后一次出现的角标相同,意味着该元素只存在于某一个数组中,那么这一个就是两数组中不同的元素,依次比较,得到的元素组合就是两数组中不同的元素
let diffArr = concatArr.filter(function(value, index, result) {
    return result.indexOf(value) === result.lastIndexOf(value);
});
console.log(diffArr);

打印结果:

注意:在使用concat的时候,arr1不能为undefined不然会报错,而arr2如果为undefined,会被合并到数组中。如:

所以在使用concat的时候注意判断数组是否定义,没有则给一个默认空数组[]。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值