Kako provjeriti sadrži li niz u objektu JavaScript?

Koji je najsažetiji i najučinkovitiji način da saznamo sadrži li polje JavaScript objekt?

To je jedini način na koji to znam:

 function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } 

Postoji li bolji i koncizniji način za to?

To je vrlo usko povezano s problemom prelijevanja stogova.Najbolji način za pronalaženje elementa u JavaScript polju? koji je dizajniran za pronalaženje objekata u nizu pomoću indexOf .

3446
26 окт. postavila brad 26. listopada 2008-10-26 01:14 '08 u 1:14 2008-10-26 01:14
@ 44 odgovora
  • 1
  • 2

Trenutno, preglednici sadrže Array#includes , što čini upravo to, je široko podržan i ima polipolk za starije preglednike.

 > ['joe', 'jane', 'mary'].includes('jane'); true 

Također možete koristiti Array#indexOf , koji je manje izravan, ali ne zahtijeva Polyfills za zastarjele preglednike.

jQuery nudi $.inArray , koji je funkcionalno ekvivalentan Array#indexOf .

Underscore.js , biblioteka uslužnog programa JavaScript, nudi _.contains(list, value) , alias _.include(list, value) , od kojih oba koriste indexOf unutar ako prođu u polje JavaScript.

Neke druge strukture nude slične metode:

Imajte na umu da neke strukture implementiraju ovo kao funkciju, dok druge dodaju funkciju prototipnom nizu.

3855
24 сент. Odgovor je dao kodeks rujan 24 2009-09-24 22:35 09. 09. u 10:35 2009-09-24 22:35

Update. Kao što je @orip spomenuo u komentarima, relevantni test je izvršen 2008. godine, tako da rezultati možda nisu relevantni za moderne preglednike. Međutim, vjerojatno će vam ovo i trebati da biste podržali ne-state-of-the-art preglednike i oni vjerojatno od tada nisu ažurirani. Uvijek provjerite sami.

Kao što su drugi rekli, iteriranje kroz niz je vjerojatno najbolji način, ali dokazano je da je smanjivanje petlje najbrži način da se iterira kroz JavaScript. Stoga kod možete ponovno napisati kako slijedi:

 function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; } 

Naravno, također možete proširiti prototip Array:

border=0
 Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } 

I sada možete koristiti sljedeće:

 alert([1, 2, 3].contains(2)); // => true alert([1, 2, 3].contains('2')); // => false 
373
26 окт. odgovor dao Damir Zekić 26. listopada 2008-10-26 02:10 '08 u 2:10 2008-10-26 02:10

indexOf , ali ovo je "JavaScript proširenje za ECMA-262 standard, tako da možda neće biti dostupno u drugim implementacijama standarda."

primjer:

 [1, 2, 3].indexOf(1) => 0 ["foo", "bar", "baz"].indexOf("bar") => 1 [1, 2, 3].indexOf(4) => -1 

AFAICS Microsoft ne nudi nikakve alternative , ali možete dodati slične funkcije nizovima u Internet Exploreru (i drugim preglednicima koji ne podržavaju indexOf ) ako želite, kao što se brzo prikazuje Google pretraživanje (na primjer, ovaj) .

169
26 окт. odgovor je dat cic 26 okt. 2008-10-26 01:49 '08 u 1:49 am 2008-10-26 01:49

ECMAScript 7 predstavlja Array.prototype.includes .

Može se koristiti na sljedeći način:

 [1, 2, 3].includes(3, 3); // false [1, 2, 3].includes(3, -1); // true 

Za razliku od indexOf , koji koristi Strict Equality Comparison , includes uspoređuje s korištenjem SameValueZero . To znači da možete odrediti sadrži li polje NaN :

 new Array(5).includes(undefined); // true 

Trenutno je još uvijek nacrt, ali može biti polifiliran tako da radi na svim preglednicima.

139
01 янв. odgovor je dao Oriol Jan 01 2015-01-01 04:40 '15 u 4:40 2015-01-01 04:40

b je vrijednost, a a je niz. Vraća true ili false :

 function(a, b) { return a.indexOf(b) != -1 } 
100
24 марта '12 в 7:59 2012-03-24 07:59 odgovor je dao william malo 24. ožujka 2012. u 7:59 2012-03-24 07:59

Ovo je JavaScript kompatibilna implementacija Array.indexOf :

 if (!Array.indexOf) { Array.indexOf = [].indexOf ? function(arr, obj, from) { return arr.indexOf(obj, from); } : function(arr, obj, from) { // (for IE6) var l = arr.length, i = from ? parseInt((1 * from) + (from < 0 ? l : 0), 10) : 0; i = i < 0 ? 0 : i; for (; i < l; i++) { if (i in arr  arr[i] === obj) { return i; } } return -1; }; } 
71
27 окт. odgovor Már Örlygsson 27. listopada 2008-10-27 03:38 '08 u 3:38 2008-10-27 03:38

Gornji odgovori pretpostavljaju primitivne tipove, ali ako želite saznati sadrži li niz neki objekt s nekim svojstvom, Array.prototype.some () je vrlo elegantno rješenje:

 const items = [ {a: '1'}, {a: '2'}, {a: '3'} ] items.some(item => item.a === '3') // returns true items.some(item => item.a === '4') // returns false 

Najugodnije je da se iteracija prekine nakon što je element otkriven, stoga se spremaju nepotrebni ciklusi iteracije.

Osim toga, savršeno se uklapa u if jer vraća boolean vrijednost:

 if (items.some(item => item.a === '3')) { // do something } 

* Kao što je primijetio jamess u komentarima, danas, rujan 2018., Array.prototype.some() potpunosti podržan: caniuse.com tablica podrške

61
18 июля '14 в 17:36 2014-07-18 17:36 Odgovor je dao Michael 18. srpnja 2014. u 17:36 2014-07-18 17:36

Upotreba:

 function isInArray(array, search) { return array.indexOf(search) >= 0; } // Usage if(isInArray(my_array, "my_value")) { //... } 
50
13 сент. odgovor Matías Cánepe 13. rujna 2013-09-13 20:32 '13 u 20:32 2013-09-13 20:32

Proširenje JavaScript Array je stvarno loša ideja, jer unosite nova svojstva (vlastite metode) u for-in petlje koje mogu razbiti postojeće skripte. Prije nekoliko godina autori knjižnice Prototype morali su obnoviti implementaciju svoje knjižnice kako bi uklonili takve stvari.

Ako ne morate brinuti o kompatibilnosti s drugim JavaScriptom koji se izvodi na vašoj stranici, krenite prema njemu, inače bih preporučio neugodnije, ali sigurnije rješenje za samostalan rad.

42
27 авг. odgovor je dao Mason Houtz 27 aug. 2009-08-27 19:45 '09 u 19:45 2009-08-27 19:45

Razmišljajući o kutiji za trenutak, ako ovaj poziv napravite mnogo puta, mnogo je učinkovitije koristiti asocijativno polje koje će izvršiti pretraživanje pomoću hash funkcije.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

27
23 дек. Odgovor daje MattMcKnight 23. prosinca. 2009-12-23 18:59 '09 u 18:59 2009-12-23 18:59

Jedna olovka:

 function contains(arr, x) { return arr.filter(function(elem) { return elem == x }).length > 0; } 
24
07 янв. Odgovori AlonL 7. sij 2015-01-07 15:49 '15 u 15:49 2015-01-07 15:49

Koristim sljedeće:

 Array.prototype.contains = function (v) { return this.indexOf(v) > -1; } var a = [ 'foo', 'bar' ]; a.contains('foo'); // true a.contains('fox'); // false 
22
15 июня '14 в 4:15 2014-06-15 04:15 odgovor je dao Eduardo Cuomo 15. lipnja 2014. u 4:15 2014-06-15 04:15
 function contains(a, obj) { return a.some(function(element){return element == obj;}) } 

Array.prototype.some () je dodan u ECMA-262 standard u petom izdanju

19
12 сент. Odgovor je dan dansalmo 12 sep . 2014-09-12 19:55 '14 u 19:55 2014-09-12 19:55

Nadam se da će brži dvosmjerni indexOf / lastIndexOf alternativni

2015

Iako nova metoda uključuje vrlo dobru metodu, podrška je trenutno nula.

Razmišljao sam o tome kako zamijeniti spore funkcije indexOf / lastIndexOf.

Put obavljanja već je pronađen, gledajući gornje odgovore. Od njih sam izabrao funkciju koja contains @Damir Zekić, koja bi trebala biti najbrža. Ali također navodi da su mjerila od 2008. već zastarjela.

Također mi je draže for , ali iz nekog određenog razloga završio sam pisanje funkcije s petljom for. To može biti učinjeno i za while -- .

Bio sam znatiželjan da je iteracija mnogo sporija, ako provjerim obje strane polja. Očigledno ne, i stoga je ova funkcija dvaput brža od najviših glasača. Očito je i brži od izvornog. Ovo je u stvarnom okruženju u kojem nikad ne znate je li vrijednost koju tražite na početku ili na kraju niza.

Kada znate da ste upravo kliknuli niz s vrijednošću, upotreba lastIndexOf je vjerojatno najbolje rješenje, ali ako trebate putovati kroz velike nizove i rezultat može biti posvuda, to može biti trajno rješenje za ubrzavanje rada.

Dvosmjerni indeksOf / lastIndexOf

 function bidirectionalIndexOf(a, b, c, d, e){ for(c=a.length,d=c*1; c--; ){ if(a[c]==b) return c; //or this[c]===b if(a[e=d-1-c]==b) return e; //or a[e=d-1-c]===b } return -1 } //Usage bidirectionalIndexOf(array,'value'); 

Test izvedbe

http://jsperf.com/bidirectionalindexof

Kao test stvorio sam niz od 100 tisuća zapisa.

Tri upita: na početku, u sredini i na kraju polja.

Nadam se da ćete i vi biti zanimljivi i iskusni.

Napomena. Kao što možete vidjeti, pomalo sam izmijenio funkciju contains kako bi odrazio izlaz indexOf i lastIndexOf (dakle uglavnom true s index i false s -1 ). To mu ne bi trebalo nauditi.

Opcija prototipa polja

 Object.defineProperty(Array.prototype,'bidirectionalIndexOf',{value:function(b,c,d,e){ for(c=this.length,d=c*1; c--; ){ if(this[c]==b) return c; //or this[c]===b if(this[e=d-1-c] == b) return e; //or this[e=d-1-c]===b } return -1 },writable:false, enumerable:false}); // Usage array.bidirectionalIndexOf('value'); 

Funkcija se također može lako modificirati za vraćanje istinitog ili lažnog, ili čak objekta, niza ili nečeg drugog.

I ovdje je opcija time:

 function bidirectionalIndexOf(a, b, c, d){ c=a.length; d=c-1; while(c--){ if(b===a[c]) return c; if(b===a[dc]) return dc; } return c } // Usage bidirectionalIndexOf(array,'value'); 

Kako je to moguće?

Mislim da je jednostavna kalkulacija da bi se dobio prikazani indeks u nizu tako jednostavan da je dvostruko brži od trenutne iteracije petlje.

Ovdje je složen primjer koji izvodi tri provjere po iteraciji, ali to je moguće samo s duljim izračunom, što uzrokuje usporavanje koda.

http://jsperf.com/bidirectionalindexof/2

14
19 мая '15 в 23:23 2015-05-19 23:23 odgovor je dao cocco 19. svibnja '15 u 23:23 2015-05-19 23:23

Ovaj fragment koristimo (radi s objektima, nizovima, nizovima):

  Object.defineProperty(Object.prototype, 'inArray',{ value: function(needle, searchInKey){ var object = this; if( Object.prototype.toString.call(needle) === '[object Object]' || Object.prototype.toString.call(needle) === '[object Array]'){ needle = JSON.stringify(needle); } return Object.keys(object).some(function(key){ var value = object[key]; if( Object.prototype.toString.call(value) === '[object Object]' || Object.prototype.toString.call(value) === '[object Array]'){ value = JSON.stringify(value); } if(searchInKey){ if(value === needle || key === needle){ return true; } }else{ if(value === needle){ return true; } } }); }, writable: true, configurable: true, enumerable: false }); 

primjena:

 var a = {one: "first", two: "second", foo: {three: "third"}}; a.inArray("first"); //true a.inArray("foo"); //false a.inArray("foo", true); //true - search by keys a.inArray({three: "third"}); //true var b = ["one", "two", "three", "four", {foo: 'val'}]; b.inArray("one"); //true b.inArray('foo'); //false b.inArray({foo: 'val'}) //true b.inArray("{foo: 'val'}") //false var c = "String"; c.inArray("S"); //true c.inArray("s"); //false c.inArray("2", true); //true c.inArray("20", true); //false 
12
10 сент. Odgovor daje dr.dimitru 10. rujna. 2014-09-10 15:12 '14 u 15:12 2014-09-10 15:12
 function inArray(elem,array) { var len = array.length; for(var i = 0 ; i < len;i++) { if(array[i] == elem){return i;} } return -1; } 

Vraća indeks indeksa ako je pronađen, ili -1 ako nije pronađen

12
27 июня '12 в 15:32 2012-06-27 15:32 odgovor je dao LmC 27. lipnja '12 u 15:32 2012-06-27 15:32

Ako opetovano provjerite postojanje objekta u nizu, možete pogledati

  • Spremanje niza, stalno razvrstavanje, čime se umetanje sortira u polje (postavljamo nove objekte na pravo mjesto)
  • Napravite ažuriranja objekata kao operaciju brisanja + sortiranje umetnite i
  • Koristite binarno pretraživanje u vašem contains(a, obj) .
12
05 февр. odgovor je dan Ztyx 05 feb . 2011-02-05 21:02 '11 u 21:02 2011-02-05 21:02

Ako koristite JavaScript 1.6 ili noviji (Firefox 1.5 ili noviji), možete koristiti Array.indexOf . Inače, mislim da ćete završiti s nečim sličnim vašem izvornom kodu.

10
26 окт. odgovor daje Andru Luvisi 2008-10-26 01:44 '08 u 1:44 2008-10-26 01:44

Koristite nekakvu lodash.

Ovo je jezgrovito, točno i praktično sučelje za više platformi.

Prihvaćeni odgovor ne ispunjava niti uvjete.

Zahtjevi: Preporučite najsažetiji i učinkovitiji način da saznate sadrži li niz JavaScript objekt.

Prihvaćeni odgovor:

 $.inArray({'b': 2}, [{'a': 1}, {'b': 2}]) > -1 

Moja preporuka:

 _.some([{'a': 1}, {'b': 2}], {'b': 2}) > true 

primjedbe:

$. inArray je super za određivanje postoji li skalarna vrijednost u nizu skalara ...

 $.inArray(2, [1,2]) > 1 

... ali pitanje jasno zahtijeva učinkovit način utvrđivanja je li objekt sadržan u nizu.

Da biste obradili i skalare i objekte, možete to učiniti:

 (_.isObject(item)) ? _.some(ary, item) : (_.indexOf(ary, item) > -1) 
9
21 окт. odgovor je dan l3x 21. listopada. 2015-10-21 13:57 '15 u 13:57 2015-10-21 13:57

Rješenje koje funkcionira u svim modernim preglednicima:

 function contains(arr, obj) { const stringifiedObj = JSON.stringify(obj); // Cache our object to not call 'JSON.stringify' on every iteration return arr.some(item => JSON.stringify(item) === stringifiedObj); } 

Upotreba:

 contains([{a: 1}, {a: 2}], {a: 1}); // true 

IE6 + rješenje:

 function contains(arr, obj) { var stringifiedObj = JSON.stringify(obj) return arr.some(function (item) { return JSON.stringify(item) === stringifiedObj; }); } // .some polyfill, not needed for IE9+ if (!('some' in Array.prototype)) { Array.prototype.some = function (tester, that ) { for (var i = 0, n = this.length; i < n; i++) { if (i in this  tester.call(that, this[i], i, this)) return true; } return false; }; } 

Upotreba:

 contains([{a: 1}, {a: 2}], {a: 1}); // true 

Zašto koristiti JSON.stringify ?

Array.indexOf i Array.includes (kao i većina odgovora ovdje) uspoređuju se samo referencom, a ne vrijednošću.

 [{a: 1}, {a: 2}].includes({a: 1}); // false, because {a: 1} is a new object 

bonus

Neoptimizirani jednostruki ES6:

 [{a: 1}, {a: 2}].some(item => JSON.stringify(item) === JSON.stringify({a: 1)); // true 

Napomena. Uspoređujući objekte po vrijednosti, bolje će raditi ako su ključevi raspoređeni u istom redoslijedu, tako da za sigurnost možete najprije razvrstati ključeve koristeći paket poput sljedeće: https://www.npmjs.com/package/sort-keys.


Ažurirano contains funkciju s optimizacijom perforacije. Hvala što ste to istakli.

9
25 янв. Odgovor dao Igor Barbashin 25. siječnja 2017-01-25 03:22 '17 u 3:22 2017-01-25 03:22

Dok je array.indexOf(x)!=-1 najkraći način da se to učini (a preglednici nisu podržavali internetske preglednike više od desetljeća ...), to nije O (1), nego O (N), što je strašno. Ako se vaš niz ne promijeni, možete pretvoriti niz u hash-tablicu, a zatim izvršiti table[x]!==undefined ili ===undefined :

 Array.prototype.toTable = function() { var t = {}; this.forEach(function(x){t[x]=true}); return t; } 

Demo:

 var toRemove = [2,4].toTable(); [1,2,3,4,5].filter(function(x){return toRemove[x]===undefined}) 

(Nažalost, dok možete stvoriti Array.prototype.contains za zamrzavanje polja i spremanje tablice raspršivanja u this._cache u dva reda, to će dovesti do netočnih rezultata ako želite urediti svoj niz kasnije. kuke tako da možete spremiti ovo stanje, za razliku od Pythona, na primjer.)

8
22 апр. odgovor je dan ninjagecko 22. travnja 2012-04-22 08:17 '12 u 8:17 am 2012-04-22 08:17

ECMAScript 6 ima elegantnu ponudu za pretraživanje.

Metoda find izvršava funkciju povratnog poziva jednom za svaki element prisutan u nizu dok ne pronađe onaj gdje povratni poziv vraća istinsku vrijednost vrijednosti. Ako se pronađe takav element, find odmah vraća vrijednost tog elementa. U suprotnom, pronađite povratak nedefiniran. povratni poziv se poziva samo za indekse nizova koji imaju dodijeljene vrijednosti; On se ne poziva za indekse koji su izbrisani ili koji nikada nisu bili dodijeljeni vrijednostima.

Slijedi MDN dokumentacija .

Funkcija pretraživanja radi na sljedeći način.

 function isPrime(element, index, array) { var start = 2; while (start <= Math.sqrt(element)) { if (element % start++ < 1) return false; } return (element > 1); } console.log( [4, 6, 8, 12].find(isPrime) ); // Undefined, not found console.log( [4, 5, 8, 12].find(isPrime) ); // 5 

To možete koristiti u ECMAScript 5 i ispod definirajuće funkcije .

 if (!Array.prototype.find) { Object.defineProperty(Array.prototype, 'find', { enumerable: false, configurable: true, writable: true, value: function(predicate) { if (this == null) { throw new TypeError('Array.prototype.find called on null or undefined'); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } var list = Object(this); var length = list.length >>> 0; var thisArg = arguments[1]; var value; for (var i = 0; i < length; i++) { if (i in list) { value = list[i]; if (predicate.call(thisArg, value, i, list)) { return value; } } } return undefined; } }); } 
7
29 мая '14 в 19:55 2014-05-29 19:55 odgovor je dao Pradeep Mahdevu 29. svibnja '14 u 19:55 2014-05-29 19:55

Upotreba:

 var myArray = ['yellow', 'orange', 'red'] ; alert(!!~myArray.indexOf('red')); //true 

demo

Da biste točno znali što tilde radi u ovom trenutku, pogledajte ovo pitanje: Što radi tilda kad prethodi izraz? ,

6
06 окт. odgovor dao Mina Gabriel listopad 06. \ t 2013-10-06 15:25 '13 u 15:25 2013-10-06 15:25

Ovdje, Prototip to čini :

  function indexOf(item, i) { i || (i = 0); var length = this.length; if (i < 0) i = length + i; for (; i < length; i++) if (this[i] === item) return i; return -1; } 

Također pogledajte ovdje da ih povežete.

4
27 авг. odgovor je dan Ken 27 aug. 2009-08-27 20:10 '09 u 20:10 2009-08-27 20:10

Možete koristiti Set , koji ima metodu "has ()":

 function contains(arr, obj) { var proxy = new Set(arr); if (proxy.has(obj)) return true; else return false; } var arr = ['Happy', 'New', 'Year']; console.log(contains(arr, 'Happy')); 
3
16 нояб. odgovor je dat rlib 16 Nov. 2015-11-16 15:26 '15 u 15:26 2015-11-16 15:26

U redu, možete samo optimizirati svoj kôd da biste dobili rezultat!

Postoji mnogo načina da to učinite što će biti čišći i bolji, ali samo sam htio dobiti vaš predložak i primijeniti ga pomoću JSON.stringify , samo učinite nešto u ovom slučaju:

 function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (JSON.stringify(a[i]) === JSON.stringify(obj)) { return true; } } return false; } 
3
02 июля '17 в 14:31 2017-07-02 14:31 Odgovor je dala Alireza na Srpanj 02 '17 u 14:31 2017-07-02 14:31

Upotreba:

 Array.prototype.contains = function(x){ var retVal = -1; // x is a primitive type if(["string","number"].indexOf(typeof x)>=0 ){ retVal = this.indexOf(x);} // x is a function else if(typeof x =="function") for(var ix in this){ if((this[ix]+"")==(x+"")) retVal = ix; } //x is an object... else { var sx=JSON.stringify(x); for(var ix in this){ if(typeof this[ix] =="object"  JSON.stringify(this[ix])==sx) retVal = ix; } } //Return False if -1 else number if numeric otherwise string return (retVal === -1)?false : ( isNaN(+retVal) ? retVal : +retVal); } 

Znam da to nije najbolji način da se ide, ali budući da ne postoji prirodan način interakcije između objekata, vjerujem da je tako blizu da možete usporediti dva objekta u nizu. Osim toga, proširenje Array objekta može biti nerazumno, ali ponekad je to normalno (ako znate za ovo i kompromis).

3
06 янв. Odgovor je dao Carlos A 6. siječnja 2012-01-06 16:43 '12 u 16:43 2012-01-06 16:43

Možete upotrijebiti i ovaj trik:

 var arrayContains = function(object) { return (serverList.filter(function(currentObject) { if (currentObject === object) { return currentObject } else { return false; } }).length > 0) ? true : false } 
3
10 янв. odgovor od user2724028 10 sij 2016-01-10 13:06 '16 u 13:06 2016-01-10 13:06

Kao što je već spomenuto, možete koristiti Array.indexOf , ali nije dostupan u svim preglednicima. Ovdje kod je https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf , tako da radi u starijim preglednicima.

indexOf je najnoviji dodatak standardu ECMA-262; kao takav, možda nije prisutan u svim preglednicima. To možete zaobići umetanjem sljedećeg koda na početku svojih skripti, omogućujući vam da koristite indexOf u implementacijama koje ga ne podržavaju. Taj je algoritam točno onakav kakav je naveden u ECMA-262, 5. izdanju, uz pretpostavku da Object, TypeError, Number, Math.floor, Math.abs i Math.max imaju svoju izvornu vrijednost.

 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (searchElement  ) { "use strict"; if (this == null) { throw new TypeError(); } var t = Object(this); var len = t.length >>> 0; if (len === 0) { return -1; } var n = 0; if (arguments.length > 1) { n = Number(arguments[1]); if (n != n) { // shortcut for verifying if it NaN n = 0; } else if (n != 0  n != Infinity  n != -Infinity) { n = (n > 0 || -1) * Math.floor(Math.abs(n)); } } if (n >= len) { return -1; } var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); for (; k < len; k++) { if (k in t  t[k] === searchElement) { return k; } } return -1; } } 
2
12 марта '13 в 8:44 2013-03-12 08:44 odgovor je dat Simon_Weaver 12. ožujka '13 u 8:44 2013-03-12 08:44
  • Ili upotrijebite Array.indexOf (Objekt).
  • S ECMA 7 možete koristiti niz Array.includes (Object).
  • S ECMA 6 možete koristiti Array.find (FunctionName), gdje je FunctionName korisnički definirana funkcija za traženje objekta u nizu.

    Nadam se da ovo pomaže!

2
18 авг. odgovor dan kg11 18 kol. 2017-08-18 07:20 '17 u 7:20 2017-08-18 07:20
  • 1
  • 2