1 заметка с тегом

in_array РСС

8 февраля 2009, 21:02

JavaScript in_array / расширяем функционал ;)

// Есть массив, хочем узнать входит ли в него элемент ;)
var simplaArray = [ 5, 10, 15, 20, 25];

// Расширим прототайп :)
// Простой способ
Array.prototype.in_array = function(obj) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == obj) {
			return true;
		}
	}
	return false;
}

// Можно и в обьектах покопаться 
Object.prototype.in_array = function(datum, strict) {
	if (strict) function equals(a,b) { return a === b }
	else function equals(a,b) { return a == b }
	for (var i in this) if (equals(this[i], datum) ) return true;
	return false;
}

// Или через RegExp
Array.prototype.in_array = function(obj){ 
	return new RegExp('(^|\,)'+obj+'(\,|$)','gi').test(this);
}
// Проверяем
simplaArray.in_array(10); // true
simplaArray.in_array(11); // false

// Ещё можно использовать простую функцию ;)
function in_array(myValue,myArray){
    function equals(a,b){return (a === b);}
    for (var i in myArray) if (equals(myArray[i],myValue) ) return true;
    return false;
}
in_array(5,simplaArray); // true
in_array(69,simplaArray); // false

// А ещё, мы легко можем вывести весь массив в одну строку toSource
// и проверить текстом  через indexOf. Но это не красиво ;)
(','+simplaArray.toString()+',').indexOf(',5,')!==-1 // true

//PS: каждому своё ;)
in_array   javascript