Показать сообщение отдельно
  #43 (permalink)  
Старый 12.01.2012, 22:34
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

рони, я мож чего не понимаю, но почему эти два массива равны? ['a','b','c','c'] и ['b','c','a','a']
var a = ['a','b','c','c'], c = ['b','c','a','a'];

Gozar, я не говорил, что она меня не устроила. Я сказал, что в IE работать не будет.
melky, тему с ходу не нашел, но за JSDoc спасибо)

За переделку извиняюсь. Первое, что пришло в голову (мог накосячить, голова к вечеру не варит)

function arrComp(x, z) {
	if(x.length !== z.length) return false;

	var i = 0, a = {};
	
	while(i in x) {
		if(x[i] !== z[i]) x[i] in a ? a[x[i]]++ : a[x[i]] = 1;
		i++;
	}
	
	while(i--) if(z[i] in a) if(--a[z[i]] < 0) return false;
	return true;
};

var a = ['a','b','c','c'], c = ['b','c','a','a'];
alert(arrComp(a,c)); // false

var a = ['c','b','a','d','a'], c = ['a','d','c','a','b'];
alert(arrComp(a,c)); // true
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 12.01.2012 в 23:03.
Ответить с цитированием