SORU
11 ŞUBAT 2011, Cuma


Javascript Liste üreteci yapmak

Ne Javascript bir şeyler yapmak için temiz bir yoldurgibiPython'un liste üreteci?

Python ise nesnelerin bir listesi var, eğer kimin adı 'out' böyle bir şey yapmazdım... çekmek istiyorum ben

list_of_names = [x.name for x in list_of_objects]

Gerçekten bir daha görmek istemiyorum 'güzel' sadece döngü için bir yapı kullanarak farklı yapmanın bir yolu. javascript

BİLGİNİZE: jQuery; belki de bunu mümkün kılan bazı hoş özelliği var.

Daha spesifik olarak, $('input') gibi bir jQuery seçici kullanıyorum ki input bütün unsurlar, nasıl ki almamen temiz bir şekildeinput bu unsurlar--yani, bir dizi $('input').attr('name') dizeyi her biri için name tüm özellikleri bir dizi oluşturmak mı?

CEVAP
11 ŞUBAT 2011, Cuma


genel durum Array.map kullanarak javascript 1.6 gerektirir (bunun anlamı, her tarayıcı ama İE < üzerinde çalışır; 9)yabir nesne ile MooTools gibi artırmada çerçevesinde her tarayıcı üzerinde çalışır:

var list_of_names = document.getElementsByTagName('input').map(
  function(element) { return element.getAttribute('name'); }
);

spesifik bir örnek DV çalışır her tarayıcı:

var list_of_names = jQuery.map(jQuery('input'), function(element) { return jQuery(element).attr('name'); });

diğer cevaplar .each kullanarak yanlış; kod kendisi değil, ama uygulamaları alt-optimal.

Düzenleme:ayrıca sözdizimi Array comprehensions 1.7, ama bu tamamen bağlıdır Javascript tanıtıldı yoktur ve olamaz doğal olmayan tarayıcılar taklit. Bu deftere Python kod Javascript alabilirsiniz yakın şeydir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • super1988guy

    super1988guy

    9 Aralık 2007