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

  • filmurfreakur

    filmurfreaku

    29 Mart 2007
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • Rickymon Tero

    Rickymon Ter

    1 Ocak 2007