кодесурса
«JavaScript

JavaScript: найдите уникальные элементы из двух массивов

script1adsense2code
script1adsense3code

Массив JavaScript: упражнение 42 с решением

Напишите функцию JavaScript, чтобы найти уникальные элементы из двух массивов.

Тестовые данные :
console.log (разница ([1, 2, 3], [100, 2, 1, 10]));
["1", "2", "3", "10", "100"]
console.log (разница ([1, 2, 3, 4, 5], [1, [2], [3, [[4]]], [5,6]]));
["1", "2", "3", "4", "5", "6"]
console.log (разница ([1, 2, 3], [100, 2, 1, 10]));
["1", "2", "3", "10", "100"]

Иллюстрированная презентация:

«JavaScript:

Пример решения:

HTML-код:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to find the unique elements from two arrays</title>
</head>
<body>
</body>
</html>

Код JavaScript:

function difference(arr1,arr2) {
  
  var a1= flatten(arr1,true);
  var a2= flatten(arr2,true);
  
 var a=[], diff=[];
  for(var i=0;i< a1.length;i++)
    a[a1[i]]=false;
  for(i=0;i< a2.length;i++)
  if(a[a2[i]]===true) 
     { delete a[a2[i]];}
    else a[a2[i]]=true;
  for(var k in a)
    diff.push(k);
  return diff;   
  }
var flatten = function(a, shallow,r){
  if(!r){ r = [];}
if (shallow) {
  return r.concat.apply(r,a);
  }  
   for(i=0; i< a.length; i++){
        if(a[i].constructor == Array){
            flatten(a[i],shallow,r);
        }else{
            r.push(a[i]);
        }
    }
    return r;
};
console.log(difference([1, 2, 3], [100, 2, 1, 10]));
console.log(difference([1, 2, 3, 4, 5], [1, [2], [3, [[4]]],[5,6]]));
console.log(difference([1, 2, 3], [100, 2, 1, 10]));

Пример вывода:

 [ "1", "2", "3", "10", "100"]
[ "1", "2", "3", "4", "5", "6"]
[ "1", "2", "3", "10", "100"]

Блок-схема:

«JavaScript

Версия ES6:

function difference(arr1,arr2) {
  const a1= flatten(arr1,true);
  const a2= flatten(arr2,true);
  const a=[];
  const diff=[];
  for(var i=0;i< a1.length;i++)
    a[a1[i]]=false;
  for(i=0;i< a2.length;i++)
  if(a[a2[i]]===true) 
     { delete a[a2[i]];}
    else a[a2[i]]=true;
  for(const k in a)
    diff.push(k);
  return diff;
}
var flatten = (a, shallow, r) => {
  if(!r){ r = [];}
if (shallow) {
  return r.concat(...a);
  }  
   for(i=0; i< a.length; i++){
        if(a[i].constructor == Array){
            flatten(a[i],shallow,r);
        }else{
            r.push(a[i]);
        }
    }
    return r;
};
console.log(difference([1, 2, 3], [100, 2, 1, 10]));
console.log(difference([1, 2, 3, 4, 5], [1, [2], [3, [[4]]],[5,6]]));
console.log(difference([1, 2, 3], [100, 2, 1, 10]));

Демонстрация в реальном времени:

См. Pen JavaScript. - Найдите уникальные элементы из двух массивов-array-ex- 42 с помощью w3resource ( @ w3resource ) в CodePen .

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите функцию JavaScript для генерации массива между двумя целыми числами длиной в 1 шаг.
Далее: Javascript Date Упражнения

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code