Javascript birleştirme nesneleri için doğal yolu
Javascript Nesne herhangi bir yerli birleştirme işlemi yok. Eğer iki nesne varsa, söyle
{a:1, b:2}
{c:3, d:4}
Ve almak istiyorum
{a:1, b:2, c:3, d:4}
Bildiğim kadarıyla, nesneler arasında dolaşmak gerekir. Bu karar da bir birleştirme solda söylemek ya da doğru strateji birleştirmek ve sonra (basit) gibi bir şey
for (key in object2) {
object1[key] = object2[key];
}
Bu gayet iyi. Ancak, Javascript call
prototype
özelliğine sahiptir. Örneğin, Array
arguments
dönüm ile yapılabilir
Array.prototype.slice.call(arguments)
Bu yaklaşım, mevcut yerel kod patlatır, ve bu yüzden programcı çılgınlık daha az açıktır ve daha hızlı, yerel olmayan bir uygulaması daha iyi çalışması gerekir.
Soru
Yok bir numara kullanın Bu prototip/çağrı desen belki Attribute
Node
geçişi özellikleri DOM, ya da belki de, bazı genel String
fonksiyonları için bir yerel nesne birleştirme?
Kod şöyle görünecektir
var merged = somethingrandom.obscuremethod.call(object1, object2)
Ve sonuç olarak, yerel bir geçiş olmadan birleştirme alırsın.
Sub-optimal bir cozum
Eğer kullanım constructor
özelliği Object
ve sonra zorlamak bir nesne için yapıcı bir nesne ve sonra Çalıştır new
üzerinde bileşik nesne, olabilir bir birleştirme için ücretsiz. Ama bu çağrıyı yapmak için javascript constructor
özelliği tam sonuçlarını kavrayabilmiş değilim.
Lemma
Aynı soru Arrays
için de geçerlidir. Ortak bir sorun olduğunu, sayı 7 dizileri bu dizilerin kesişimi bulmak için deneyin. Bu rakamlar her 7 diziler var ki!
Onlarla birlikte, daha sonra bir sıralama yapmak, ve sonra bir geçiş yapmak, kesinlikle herhangi bir parametre olabilir. Ama eğer genel bir bilgisayar yerel olarak yapmak için bir dizi ikna edebileceğimiz bir yere kapatılmış varsa iyi olurdu.
Herhangi bir düşünce?
düzenleme:
Yolun yarısını alıyorum
Dizi sorun için, aşağıdakileri yapabilirsiniz:
dizi.herhangi bir parametre(a, b, c).() tür.(':') ve daha sonra çapraz sırada RegExp
karmaşık bir yakalama ve tekrar desenleri kullanın. birleşim Biliyor musun eğer mi RegExp uygulamaları, çok basit bir yığın tabanlı bir sanal makine üzerinde çalışır. Gerçekten derlenmiş aldığı bir programın düzenli ifade (RegExp.başlatılamıyor derleme itiraz JS bir yöntem). Daha sonra yerel kavurucu hızlı bir şekilde dize üzerinde çalışır. Belki üyelik eşikleri için istismar ve daha iyi performans elde ediyorsun.
Yine de tüm yol olsa gitmez.
CEVAP
Bu cevabım hayal kırıklığı olacak, ama yine de:
hayır
Bu basit nedeni: birleştirme Bay Resig uygulaması (ya da "denir" nesneleri) bir WordPress kullanmak bir döngü, söz gibi yapıyor uzatın. Bu here arayabilirsiniz. Ve eğer John Resig bir zeki-inşa bunu yapmak için bir yol buldu bulmazlarsa, o zaman stackoverflow sadece ölümlüler olmaz ya :) diyebilirim
Eğer bir dize geçerli bir sayı olup ol...
Ne'algılamak için en iyi yolu s &...
Nasıl iki JavaScript nesneleri için eş...
Yinelenen bulmak için en kolay yolu bi...
Başlatmak için doğru yolu bir dizi...