SORU
23 Ocak 2011, Pazar


Eğer nesne dizisi olup olmadığını kontrol edin?

Ya dizeleri listesini veya tek bir dize kabul eden bir fonksiyon yazmaya çalışıyorum. Eğer bir dize ise, o zaman sadece bir dizi dönüştürmek istiyorum. tek parça. Sonra bir hata korkusu olmadan döngü.

Nasıl değişken bir dizi ise kontrol edebilirim?


Çeşitli çözümler aşağıda topladım ve jsperf test yarattı.

CEVAP
23 Ocak 2011, Pazar


Yöntem ECMA standart Nesne sınıfını bulmak için verilen Object.prototype toString yöntemini kullanmaktır.

if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
    alert( 'Array!' );
}

Ya da eğer bir Dize ise typeof test için kullanabilirsiniz:

if( typeof someVar === 'string' ) {
    someVar = [ someVar ];
}

Ya da eğer performans konusunda endişeleriniz varsa, sadece yeni boş bir Dizi concat yapabilirsin.

someVar = [].concat( someVar );

DÜZENLEME:Onun yorum aşağıda ilan edilen thorough treatment @T.J. Crowder's bir blog, bir göz atın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011