{lang: 'hu'}

Előfordulhat, hogy szükség van egy tömbbeli elem indexére, viszont egy komplexebb ellenőrzés alapján kell tudni meghatározni melyik elemről is van szó. Erre írtam egy nagyon egyszerű függvényt:


Array.prototype.findIndex = function(searchFn) {
	for(var i = 0, j = this.length; i < j; i++) {
		if(searchFn(this[i]) === true) {
			return i;
		}
	}	
};

Használata pedig:


var a = [{
		"value" : 45
	}, {
		"value" : 12
	}, {
		"value" : 39
	}],
	elemIndex = a.findIndex(function(e) {
        	// Keressük azt az elemet, aminek a value
        	// property-je páros szám
        	return e.value % 2 === 0;
    	});

Ha tudtok esetleg egyszerűbb, hatékonyabb technikát, jöhet kommentbe! 🙂

2 Responses to Keresem azt az elemet…
  1. Amennyiben ExtJS, akkor az Ext.Array.each is megfelelő lehet, igaz a callback függvény pont a fordított, ott állunk meg, ahol a feltétel nem igaz.

    var list = [{value: 45}, {value: 12}, {value: 39}];
    Ext.Array.each(list, function (item) {
    return item.value % 2 !== 0;
    });

    • Igen, ExtJS-ben van ilyenre lehetőség, de ezt kifejezetten olyan szituációkra írtam, amikor nincs keretrendszer, vagy nincs benne ilyen funkcionalítás. Tudom, hogy nem illik egyébként natív objektumok prototype-át kiegészíteni, de valahogy számomra ez sokkal szebb megoldásnak tűnik, mint egy saját névtérbe írni a függvényt.


[top]

Leave a Reply

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.