(Javascript) Как найти уникальные значения из массива и поместить их в другой, используя логические значения? - PullRequest
0 голосов
/ 10 мая 2018

Итак, допустим, у меня есть мой первый массив (arrayOne) со значениями [1,2,3,3,4,2]. Мне нужно сравнить этот массив с другим массивом, чтобы проверить наличие дублирующих значений (arrayTwo), а затем отобразить эти значения.

Итак, конечный результат будет: 1, 2, 3, 4.

Суть в том, что я могу использовать только базовые методы, в основном просто логические, множественные функции и циклы.

Как я могу пойти по этому поводу? Поиск в интернете вызывает код, подобный этому:

for (a = 0; a < array1.length; a += 1) {
    for (b = 0; b < array2.length; b += 1) {
        if (array1[a] !== array2[b])
            array2 = array1
        }
    }
}

output = array2   

... и так далее, но это, похоже, не работает для меня (обратите внимание, что мой код не совсем такой, но после поиска, похоже, он близок к тому, что я ищу).

Любой совет?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Я не уверен, что понимаю ваш вопрос, но я думаю, что вы хотите вернуть исходный массив без повторяющихся значений.

let array = [1, 2, 3, 3, 4, 2];

function removeDuplicates(input) {
  let result = [];
  
  for (i = 0; i < input.length; i++) {
    let currentValue = input[i];
    
    if (result.indexOf(currentValue) == -1) {
      result.push(currentValue);
    }
  }
  
  return result;
}

console.log(removeDuplicates(array));

Здесь вы можете найти больше реализаций.

0 голосов
/ 10 мая 2018

Во внутреннем цикле проверьте, равен ли текущий элемент элементу в массиве. Если это так, break внутренний цикл. Проверьте во внешнем цикле, если b === array2.length. В этом случае равенство означает, что цикл завершился без перерыва, а значит - не дубликат. В этом случае нажмите текущий элемент на array2.

var array1 = [1, 2, 3, 3, 4, 2];
var array2 = [];
var a,b;

for (a = 0; a < array1.length; a += 1) {
  for (b = 0; b < array2.length; b += 1) {
    if (array1[a] === array2[b]) break;
  }
  
  if(b === array2.length) array2.push(array1[a]);
}

console.log(array2);
...