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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • manadude21

    manadude21

    11 Mart 2008
  • Valdorsha

    Valdorsha

    8 Mayıs 2006