比较两个数组,并返回一个新数组,其中任何项只在两个给定数组中找到,而不是两者兼有。换句话说,返回两个数组的对称差分。
Note
您可以以任何顺序返回带有其元素的数组。
我试图通过循环遍历数组的每个元素来解决这个问题,并说如果数组中有多个这些元素,那么我们不希望返回它。
注:我已经比这个问题更进一步了一步,我基本上是在试图解决:“返回任何一个数组中只发生一次的元素。”我如何拒绝任何发生不止一次的元素?
我的代码不起作用:
function diffArray(arr1, arr2) {
var newArr = [...arr1, ...arr2];
let a =
我想取第一个数组的第一个值,并检查第二个数组是否存在,然后删除它。
例如,我想取数字41,如果它存在于下面的任意3个数组中,则删除它(如果不取数字5),依此类推
for(var i=0;i<array1.length;i++) {
var num = array1[i];
console.log('Num',num);
for(var j=0; j<array2.length; j++) {
var eacharr = array3[j];
for( var p = 0; p < eacharr.length; p++){
我一直在研究一种算法,该算法将找到两个数组的对称差异(即只有两个数组中的一个数组中的项,而不是两个数组中的一个数组中的项)。到目前为止,我想出了以下几点:
function diffArray(arr1, arr2) {
let newArr1 = arr1.slice();
let newArr2 = arr2.slice();
if (newArr1.length > newArr2.length) {
return newArr1.filter((item) => !(item in newArr2));
} else {
return n