| 
	
		
 Перебор массива - вложенный цикл 
		
		
		
		Не могу понять где ошибки. 
	Задача: необходимо написать функцию, которая проверяла - содержаться ли элементы массива array 2 в массиве array 1 и в зависимости от этого возвращала булевое значение. Решение (неработающее): Создаю два цикла: -внешний цикл перебирает значения array1 и присваивает их var arrayElem, которая передаётся во внутренний цикл; -во внутреннем цикле перебираются значения array2 и сравниваются с var arrayElem; -если значения равны то array2[j] помещаеться в пустой массив matchArray; -если длина массива matchArray === длине массива array2 возвращаеться true, иначе false. Код: 
	function contains(array1, array2) { | 
	
		
 Цитата: 
	
 
var a1=[1,2,3,4,5];
var a2=[2,4];
alert(cross(a1,a2));
function cross(Ar1,Ar2) {
	for (var i=0; i<Ar1.length; i++) {
		for (var j=0; j<Ar2.length; j++) {
			if (Ar1[i]==Ar2[j]) {
				return true;
			};
		};
	};
	return false;
};
 | 
	
		
 ksa, то есть при первом же совпадении считаем остальные элементы тоже совпавшими? Странная логика.. 
	 | 
	
		
 Используя ES5 функционал: 
	
var a1 = [1,2,3,4,5];
var a2 = [2,4];
alert(isSubset(a1, a2));
function isSubset(a1, a2) {
    return a2.every(function(element) {
        return a1.indexOf(element) !== -1;
    });
}
; | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Если второй массив должен быть частью первого - тогда все сложнее. Ведь может получиться и такая комбинация var a1=[1,2,3,4,5]; var a2=[2,4,4,2]; И как тогда?  | 
	
		
 Цитата: 
	
 
function contains(array1, array2) {
	"use strict";
	array1 = [1, 2, 3, 4, 5];
	what = [1, 2, 3];
	var matchArray = [];
        var counter = 0;
	for (var i = 0; i < array1.length; i++) {
		var arrayElem = array1[i];
		for (var j = 0; j < what.length; i++) {
			if (what[j] === arrayElem) {
				counter = counter + 1;
			}
		}
	}
	if (counter === what.length) {
		return true;
	} else {
		return false;
	}
}
К сожалению, мне как начинающему не совсем понятен Ваш код. Забыл сказать: я не могу в коде использовать те элементы JS, которые мы ещё не изучали а до indexOf еще не добежали.  | 
	
		
 Цитата: 
	
 
var a1=[1,2,3,4,5];
var a2=[2,4,4,2];
alert(isSubset(a1, a2));
function isSubset(a1, a2) {
    for (var i = 0; i < a2.length; i++) {
        var element = a2[i];
        var found = false;
        for (var j = 0; j < a1.length; j++) {
            if (a1[j] === element) {
                found = true;
                break;
            }
        }
        if (!found) {
            return false;
        }
    }
    return true;
}
 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Я не зря назвал функцию isSubset. В множествах нет повторяющихся элементов, поэтому [2, 4, 4, 2] - тоже самое что и [2, 4], и в множествах порядок не имеет значения. Именно так функция и работает - игнорирует порядок и повторы.  | 
| Часовой пояс GMT +3, время: 09:16. | 
		
  |