2016-04-13 17 views
-2

Bir if ifadesinin içine doğru bir şekilde dönmek için bir dize edinme konusunda tamamen boş bir çizim yaptım.Dize dönüşünde takıldı

Biliyorum, her şeyi yanlış anladım ama nasıl çalışacağını anlayamıyorum. Lütfen çözümü göndermeyin, sadece bir if deyiminde dizenin doğru bir şekilde nasıl döndürüleceğini hatırlat.

+0

Beklenen çıktınız nedir? Mevcut çıktınız nedir? –

+0

Bu soru [konu dışı (# 2)] 'dir (http://stackoverflow.com/help/on-topic). – zzzzBov

cevap

1

Sorun değil, sadece yanlışları değiştirdiniz.

if(s > n.length) 

if(s.length > n) 
1

Temelde bir number Yanlış nesne üzerinde .length özelliği erişiyorsanız

if(s.length > n) 

Tam kod olurdu

function truncateString(str, num){ 
    var s = str; 
    var n = num; 
    if(s.length > n) { 
    return s.slice(0, n - 3).concat("..."); 
    } 
    else { 
    return s; 
    } 
} 

truncateString("This string is too long", 11); 
//"This str..." 
1

onunla length adlı bir özellik yok. (Dize uzunluğu yerine sayı uzunluğunu soruyorsunuz). Bu, if ifadenizin birincil koşulu asla yürütmeyeceğiniz anlamına gelir ve işlev her zaman tüm dizeyi döndürür.

0

Sana mantık üzerinde en az bir hata var inanmak olmalıdır. N.length ile karşılaştırmak yerine, str/s uzunluğunu num/n ile karşılaştırmanız gerekir.

Ve ne kullanmaya çalıştığınız şartlı üçlü operatör olduğunu düşünüyorum:?

sonraki senin bir modifiye versiyonu.

function truncateString(str, num) 
{ 
    var s = str; 
    var n = num; 

return (s.length > n) ? s.slice(0, n - 3).concat("...") : s; 

} 

alert(truncateString("This string is too long", 11)); 
0

Değişken 'n' temel bir değeri ancak bir object.That değişkenine 'n' arasında bir 'uzunluğu' özelliği yoktur neden tutar. Yani n.length ifadesi 'undefined' değerini döndürür. Son olarak s> n.length ifadesi false değerini döndürür ve blok hiçbir zaman çalışmaz. Bunun yerine s.length'i kullanabilirsiniz. 'S' dize değerini tutuyor ve dize de JavaScript'deki ilkel değerdir, ancak uzunluk özelliği de dahil olmak üzere herhangi bir özelliğe erişmeye çalıştığınızda, çalışma zamanı dize değeri sarmalayıcı String nesnesine dönüştürülür.