2012-11-10 34 views
1

我有一個關於length函數的問題。問題是,當變量中有多個條目出現時,它會完美地計算長度,但對於單個條目,它將開始測量字符數而不是數組中元素的數量。我想提醒顯示1,因爲有一個條目:finance consultant,但它顯示18測量數組的長度,而不是JavaScript中的字符

var win = Titanium.UI.createWindow({ backgroundColor:'#FFF' }); 
var tableView1=Titanium.UI.createTableView(); 
var Row = []; 
Titanium.Yahoo.yql(
    'select * from html where url="http://..." ' 
    + 'and xpath="//tbody/tr/td/a/font" limit 25', 
    function(e) { 
    results = e.data.font; 
    results = results.content; 
    alert(results.length); 
    for (var i = 0; i < results.length; i++) { 
     var rss = results[i]; 
     var rssRow = Titanium.UI.createTableViewRow({ ... }); 
     var titleLabel = Titanium.UI.createLabel({ ... }); 
     rssRow.add(titleLabel); 
     Row.push(rssRow); 
    }; 

    tableView1.setData(Row); 
    }); 

win.add(tableView1); 
win.open(); 
+1

無論如何,使用'for(var i = 0; i Ch4rAss

回答

3

你可以嘗試以下。

results = results.content; 
if (typeof results === 'string') 
    results = [results]; 
alert(results.length); 

所以,現在你已經被迫result即是一個字符串數組的字符串。其餘代碼應該不加修改地工作。

+0

嗨,感謝您的幫助。我無法向您解釋您爲我解決了多少難題 –

1

slashingweapon答案線,但簡單的,你爲什麼不只是這樣做:

var length = 0; 

if(typeof results === "string") { 
    length = 1; 
} else { 
    length = results.length; 
} 

alert(length); 

它的簡單和清晰。

相關問題