Nesneleri vs anahtar/değer çiftleri için Javascript diziler | Netgez.com
SORU
27 Mart 2009, Cuma


Nesneleri vs anahtar/değer çiftleri için Javascript diziler

Çok basit bir veri yapısı vardır:

(personId, name)

...ve javascript bir değişkeni bu bir dizi depolamak istediğiniz. Bence üç seçeneğiniz vardır:

// a single object
var people = {
    1 : 'Joe',
    3 : 'Sam',
    8 : 'Eve'
};

// or, an array of objects
var people = [
    { id: 1, name: 'Joe'},
    { id: 3, name: 'Sam'},
    { id: 8, name: 'Eve'}
];

// or, a combination of the two
var people = {
    1 : { id: 1, name: 'Joe'},
    3 : { id: 3, name: 'Sam'},
    8 : { id: 8, name: 'Eve'}
};

İkinci ya da üçüncü seçenek belli ki yolu varsa (veya beklediğiniz olabilir) birden fazla "değer" kısmına deposu (örneğin, ekleme, yaşlarına falan), yani, hatırım için, farz edelim ki hiç olacak daha fazla veri değerleri için gerekli bu yapı. Hangisini ve neden tercih ediyorsun?

< / ^ hr .

Edit: Bu örnek, şimdi en yaygın durum gösterir: sıralı olmayan kimlikleri.

CEVAP
27 Mart 2009, Cuma


Her bir çözüm kullanmak onun davaları var.

Bence ilk çözüm, iyi çalışıyorsan tanımlamak için bire-bir ilişki (gibi bir basit eşleme), özellikle de kullanman gerekiyorsa anahtar olarak bir arama anahtarı.

İkinci çözüm genel olarak bana en sağlam hissediyorum, ve muhtemelen hızlı arama tuşuna ihtiyacım olsa kullanırdım:

  • DeÄŸilsin bu yüzden kendini anlatan, kullanan herkes bağımlı insanlaranahtarı kullanıcı kimliÄŸi olduÄŸunu biliyoruz.
  • Her nesne kendi kendine yeten,geliyor hangi veri iletimi için daha iyi olur baÅŸka bir yerde - iki parametre yerine (kimliÄŸi ve Adı) etrafında geçmek sadece insanlar.
  • Bu nadir bir sorun olduÄŸunu, ama bazen anahtar deÄŸerleri için geçerli olmayabilir anahtar olarak kullanın. ÖrneÄŸin, ben bir kez göster dize dönüşüm istedi (örneÄŸin, ":"">"), ama beri ":" zorunda kaldım, geçerli bir deÄŸiÅŸken adı deÄŸildir ikinci yöntemi kullanın.
  • Durumunda kolayca geniÅŸletilebilir. bir yere hat boyunca gerek (ya da tüm) bazı kullanıcılar için daha fazla veri ekleyin. (Özür dilerim, biliyorum senin için " argüman" ama bu bir iyiliÄŸi var önemli bir yönü.)

Üçüncüsü ise hızlı arama zaman avantajları yukarıda listelenen (veri geçirmeden, kendi kendini açıklayan) bir ihtiyacın olursa iyi olur. Eğer hızlı arama zaman ihtiyacın olursa. ancak, çok daha hantal. Ayrıca, her iki şekilde de, eğer nesne kimliği bir şekilde id farklıysa hata riskiyle karşılaşırsınızinsanlar.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Easy Learn Tutorial

    Easy Learn T

    10 Kasım 2012
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • whatever

    whatever

    30 EYLÜL 2005