const setA = new Set(A.map((item) => item.deviceName))const res = B.filter(item => !setA.has(item.deviceName))console.log('两个列表中不重复的元素', res )
这段代码主要实现了从一个列表中筛选出不在另一个集合中的元素。
- 首先,通过
map
方法将A列表中的每个元素的deviceName
属性提取出来,并创建了一个新的集合setA
。 - 然后,使用
filter
方法对B列表进行筛选,只保留那些deviceName
属性不在setA
集合中的元素。 - 最终,得到一个新的列表res,其中包含了所有不在A列表中的元素的
deviceName
属性。
简而言之,这段代码的作用是找出两个列表中不重复的元素。
这段解释其实是通义灵码的原话,是不是很强大
举例:
A= [{"deviceName": "xwM3iOvNPUwCGx8k","productKey": "3LHl5ZWrRqS"},{"deviceName": "wEhmko3YjUlRPaGj","productKey": "3LHl5ZWrRqS"}]B = [{"deviceName": "kkkkk","productKey": "FAcyh7L77GA"},{"deviceName": "IWGNbnkyTDjtrS9p","productKey": "3LHl5ZWrRqS"},{"deviceName": "xwM3iOvNPUwCGx8k","productKey": "3LHl5ZWrRqS"},{"deviceName": "wEhmko3YjUlRPaGj","productKey": "3LHl5ZWrRqS"}]setA = new Set(A.map((item) => item.deviceName))// new Set([
// "xwM3iOvNPUwCGx8k",
// "wEhmko3YjUlRPaGj"
// ])B.filter(item => !setA.has(item.deviceName))[{"deviceName": "kkkkk","productKey": "FAcyh7L77GA"},{"deviceName": "IWGNbnkyTDjtrS9p","productKey": "3LHl5ZWrRqS"}
]