Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从React Native中的两个数组中提取不相同的元素?_Javascript_Arrays_React Native_Compare - Fatal编程技术网

Javascript 如何从React Native中的两个数组中提取不相同的元素?

Javascript 如何从React Native中的两个数组中提取不相同的元素?,javascript,arrays,react-native,compare,Javascript,Arrays,React Native,Compare,我有两个带字符串的数组 let a = ["ABC", "DEF"] let b = ["ABC", "DEF", "GHI"] 我想比较以上两个数组,并创建一个名为c的新数组,其中包含以下内容 c = ["GHI"] 所以,我想比较a和b数组,并将不相同的元素推到一个新数组中 如何在React Native中执行此操作?您也可以使用以下类似方法: 常数findUniques=a,b=>[…a,…b]。减速机,c,i,a=>{ a、 filterx=>x==c.length==1?r.pu

我有两个带字符串的数组

let a = ["ABC", "DEF"]
let b = ["ABC", "DEF", "GHI"]
我想比较以上两个数组,并创建一个名为c的新数组,其中包含以下内容

c = ["GHI"]
所以,我想比较a和b数组,并将不相同的元素推到一个新数组中

如何在React Native中执行此操作?

您也可以使用以下类似方法:

常数findUniques=a,b=>[…a,…b]。减速机,c,i,a=>{ a、 filterx=>x==c.length==1?r.pushc:null 返回r }, [] 控制台.logfindUniques[ABC,DEF],[ABC,DEF,GHI] 控制台.logfindUniques[ABC,DEF],[ABC] console.logfindUniques[ABC,DEF,AAA],[AAA,DEF,GHI]您也可以这样使用:

常数findUniques=a,b=>[…a,…b]。减速机,c,i,a=>{ a、 filterx=>x==c.length==1?r.pushc:null 返回r }, [] 控制台.logfindUniques[ABC,DEF],[ABC,DEF,GHI] 控制台.logfindUniques[ABC,DEF],[ABC]
console.logfindUniques[ABC,DEF,AAA],[AAA,DEF,GHI]您可以通过以下步骤完成此操作:

首先得到a中不在b中的元素 然后得到b中不在a中的元素 然后对两个数组进行concat。 设a=[ABC,DEF] 设b=[ABC,DEF,GHI] 常数res=a.filterx=>!b、 includexx.concatb.filterx=>!a、 包括X
console.logres您可以通过以下步骤执行此操作:

首先得到a中不在b中的元素 然后得到b中不在a中的元素 然后对两个数组进行concat。 设a=[ABC,DEF] 设b=[ABC,DEF,GHI] 常数res=a.filterx=>!b、 includexx.concatb.filterx=>!a、 包括X
console.logres如果由于必须搜索每个数组中的重复值,因此要防止多次遍历数组,可以利用JavaScript对象的性能

常数a=[ABC,DEF,JKL] 常数b=[ABC、DEF、GHI] const getUniqueValues=a,b=>{ const uniqueValuesObject=[…a,…b]。reduceuniqueValuesObject,value=>{ //如果该值已存在,则它不是唯一的 如果为uniqueValuesObject[值]{ uniqueValuesObject[值]=false }否则{ uniqueValuesObject[值]=真 } 返回唯一值对象 }, {} return Object.entriesuniqueValuesObject.reduceuniqueValues[value,isUnique]=>{ 如果是唯一的{ uniqueValues.pushvalue } 返回唯一值 }, [] } 常数c=getUniqueValuesa,b
console.logc如果由于必须搜索每个数组中的重复值,因此要防止多次遍历数组,可以利用JavaScript对象的性能

常数a=[ABC,DEF,JKL] 常数b=[ABC、DEF、GHI] const getUniqueValues=a,b=>{ const uniqueValuesObject=[…a,…b]。reduceuniqueValuesObject,value=>{ //如果该值已存在,则它不是唯一的 如果为uniqueValuesObject[值]{ uniqueValuesObject[值]=false }否则{ uniqueValuesObject[值]=真 } 返回唯一值对象 }, {} return Object.entriesuniqueValuesObject.reduceuniqueValues[value,isUnique]=>{ 如果是唯一的{ uniqueValues.pushvalue } 返回唯一值 }, [] } 常数c=getUniqueValuesa,b
console.logcDoes b始终包含a?的每个元素,可能不包含。有时,B可能类似于B=[ABC]。如果同一个数组包含重复的元素,那么c应该类似于c=[DEF]@SennenRandika,您需要删除它。如果a=['ABC','ABC']和b=['DEF']会得到什么结果?那么@MaheerAli可能是重复的,c应该是这样的,c=['DEF']。很抱歉我在前面的评论中犯了错误。b是否总是包含a的每个元素?可能不是。有时,B可能类似于B=[ABC]。如果同一个数组包含重复的元素,那么c应该类似于c=[DEF]@SennenRandika,您需要删除它。如果a=['ABC','ABC']和b=['DEF']会得到什么结果?那么@MaheerAli可能是重复的,c应该是这样的,c=['DEF']。很抱歉我在前面的评论中犯了错误。非常感谢你的回答。这个解决方案非常有效。你能一步一步地解释一下a.filterx=>这条线是怎么来的吗!b、 includexx.concatb.filterx=>!a、 includesx作品?@SennenRandika我已经添加了详细的解释。检查一下,如果你不明白什么,请随意提问。完美的解释!!非常感谢您的回答和解释。用你的答案实现了我想要的。非常好。非常感谢你的回答。这个解决方案非常有效。你能一步一步地解释一下a.filterx=>这条线是怎么来的吗!b、 includexx.concatb.filterx=>!a、 includesx作品?@SennenRandika我已经添加了详细的解释。检查一下,如果你不明白什么,请随意提问。完美的解释!!非常感谢您的回答和解释。用你的答案实现了我想要的。非常好。谢谢你的回答!!这个有用!!你能一步一步地给我解释一下a.filterx=>x==c.length==1这行是怎么写的吗?r、 无效?因为我们是
我们正在使用实际的数组来减少输入。因此,我们在reduce主数组内部进行过滤,以查看哪些元素只能找到一次。因此x==c。然后我们把这些元素推到累加器r上。对于那些有多个命中的过滤值,我们什么也不做。因此无效。希望这有帮助。它的救命恩人lodash func thanx!谢谢你的回答!!这个有用!!你能一步一步地给我解释一下a.filterx=>x==c.length==1这行是怎么写的吗?r、 pushc:null有效吗?因为我们使用的是Array.reduce a是我们正在减少的实际输入数组。因此,我们在reduce主数组内部进行过滤,以查看哪些元素只能找到一次。因此x==c。然后我们把这些元素推到累加器r上。对于那些有多个命中的过滤值,我们什么也不做。因此无效。希望这有帮助。它的救命恩人lodash func thanx!谢谢你的回答!!上述解决方案的时间复杂度是多少?@SennenRandika老实说,这取决于在您使用的任何JavaScript引擎中如何实现对象。为了简单起见,如果我们假设对象只是哈希表,那么对于第一个解决方案,就有可能进行O1的对象查找,因为解决方案会遍历两个数组两次。如果将多个元素散列到同一个键,则哈希表的最差时间复杂度可能为On,这可能会导致这种On²复杂度,但不太可能。至少,它比使用过滤器搜索数组快得多。谢谢你的回答!!上述解决方案的时间复杂度是多少?@SennenRandika老实说,这取决于在您使用的任何JavaScript引擎中如何实现对象。为了简单起见,如果我们假设对象只是哈希表,那么对于第一个解决方案,就有可能进行O1的对象查找,因为解决方案会遍历两个数组两次。如果将多个元素散列到同一个键,则哈希表的最差时间复杂度可能为On,这可能会导致这种On²复杂度,但不太可能。至少,它比使用过滤器搜索数组快得多。