测量数组的长度,而不是JavaScript中的字符

时间:2012-11-10 20:29:43

标签: javascript mobile titanium string-length

我对length函数有一个问题。问题是当变量中有多个条目时,它会完美地计算长度,但对于单个条目,它会开始测量字符数而不是数组中的元素数。我希望警报显示1,因为有一个条目:finance consultant,但它显示为18。

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();

2 个答案:

答案 0 :(得分:4)

您可以尝试以下操作。

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

所以现在你强制一个字符串的result是一个字符串的数组。其余的代码应该不加修改。

答案 1 :(得分:2)

slashingweapon 回答的行中,但简化了,你为什么不这样做:

var length = 0;

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

alert(length);

它更简单,更清洁。