eşitlik operatörleri yazabilir. JavaScript Dizilerinde nesneler olduğuna dikkat edin. Bu (bunlar, onlar aynı değerleri aynı içerirler bakmak, ama aynı dizi değiliz) iki ayrı diziler, çünkü nedenle ve onların referansları farklılık gösterir:
Her iki işlenen nesnelerdir, o zaman JavaScript karşılaştırır işlenenler bellekte aynı nesneye başvurduğunda eşit olan iç referanslar.
Bu konuda daha fazla bilgiyi MDN numaralı telefondan bulabilirsiniz.
Not:==
ve !=
eşitlik operatörleri de referanslarla nesneleri karşılaştırmak, ancak (ve beklenmedik sıklıkla var) sadece basit karşılaştırma daha fazlasını beri, genellikle bunları kullanmak ve her zaman (sıkı eşitlik işlemleri sadık kalmama tavsiye edilir ===
ve !==
).
Diziler nasıl karşılaştırılır?
En az birkaç farklı yöntem vardır. Bazı insanlar, her iki dizinin JSON.stringify
'unu karşılaştırmayı önermektedir, ancak basit durumlarda işe yaramasına rağmen, gerçekten iyi bir performans performansı değildir. Burada daha iyi yöntemler bulabilirsiniz https://stackoverflow.com/a/14853974/704894
lodash
veya underscore
gibi bir yardımcı program kitaplığı kullanacaksanız, bu işlev zaten var! Bkz. https://lodash.com/docs#isEqual
http://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript –
Dizi karşılaştırması için kolayca bir işlev yazabilirsiniz. –
Dizileri nesnelere benzediğinden dizileri bu şekilde karşılaştıramazsınız. Ve bir nesne üzerinde karşılaştırma operatörü kullandığınızda, referansı karşılaştırılacak ve karşılaştırma sonucu geri dönecektir. –