数组操作时避免空值出现
2011-10-17 20:44 dreamhappy 阅读(1870) 评论(0) 编辑 收藏 举报/*
移除列表中的条目
@ metaids id,id,的形式
*/
function removeBook(ids) {
var idarray =ids.split(',');
for (var i = 0; i < idarray.length; i++) {
$("#" + idarray[i]).remove();
}
}
按照上边的代码当传入 id,id,形式的参数,以','结尾时,截取数组会多一个空值。
导致metaidarray[idarray.length]是一个undefined值,后续会产生js错误。解决办法就是
循环数组是加一个判断
if(metaidarray[i]==undefined){continue}
或者在循环之前截取去掉参数最后位置的',';
在C#中也经常有这样的操作,为了避免空值出现,可以在截取时加一个参数,如下
public String GetIds(string ids) { if (ids.Length == 0) return null; StringBuilder idlist = new StringBuilder(300); string[] idarray = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string id in idarray) { idlist.Append(Convert.ToInt32(id) + ","); } if (idarry.Length > 0) idlist.Remove(idlist.Length - 1, 1); return idlist.ToString(); }