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

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009