Показать сообщение отдельно
  #6 (permalink)  
Старый 25.02.2020, 17:39
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Немного не корректно. Мы предполагаем, что все элементы в массивах разные. А если есть повторяющиеся?

Тогда так
<script>
var arrF = [3, 5, 8, 1, 3, 6];
var arrS = [1, 8, 2, 3, 5, 8, 3, 1, 5, 7, 9];

function getIntersect(arr1, arr2) {
   let aj =[]
    if (arr1.length < arr2.length) {
        [arr1, arr2] = [arr2, arr1];
    }
    for (var i = 0; i < arr1.length; i++) {
        let zer = false
        for (var j = 0; j < arr2.length; j++) {
            if (arr1[i] === arr2[j]) {
                zer = true
                aj.push(j)
            }
        }
        if (zer) arr1[i]  = 0;
    }
    aj.forEach(j => arr2[j] = 0)
    return [arr1, arr2];
}

alert(JSON.stringify(getIntersect(arrF, arrS)));
</script>

Последний раз редактировалось voraa, 25.02.2020 в 17:48.
Ответить с цитированием