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

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • kruno j

    kruno j

    6 Mayıs 2007