javascript如何将数组赋值为空

JavaScript012

javascript如何将数组赋值为空,第1张

Array未赋值前就是NULL

如arr=new Array()

此时arr就是null

如已赋值可以用

splice

如下:

var arr=new Array(1,2,3,4)

arr.splice(0,arr.length)//删除arr[]中的所有splice方法splice(2,1)删除arr[3]

if(arr[3]==null){alert("为空")}//判断是否为空

splice方法的使用:

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

参数

arrayObj

必选项。一个 Array 对象。

start

必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。

deleteCount

必选项。要移除的元素的个数。

item1, item2,. . .,itemN

必选项。要在所移除元素的位置上插入的新元素。

JS就这么规定的。主要是因为getElementsByTagName反回的是数组数组有length属性。但是在定义obj时候它并不知道自己是数组类型的(弱类型特点)所以这个时候你直接去obj.length你会发现他的返回值是“未定义”这时候就需要getElementsByTagName去告诉obj“你是个数组!!!”于是返回一个数组特有的属性length给obj.汗。这帮人小看楼主了。to2想到这点的应该不会不知道for(vari=0i<obj.lengthi++){怎么用吧。to1for(variinobj)这个东西应该是遍历obj中的[i],而不是单指属性吧。

因为ltdata那儿是回调函数返回结果后赋的值,而你alert那个却不是等回调函数返回结果后执行的操作。意思就是model.findAll(第一个是参数, 第二个是回调函数),也就是说第二个匿名方法是等待被findAll调用

//model.findAll(第一个是参数, 第二个是回调函数)

model.findAll({

    class:'Hrose_info',

    qid:ret.qid

},function(ret,err){

//这儿是回调函数执行后等操作

//也就是说这儿ltdata会在1秒后进行赋值

    for(i=0i<ret.lengthi++)

    {

        ltdata="{uid:'"+i+"',imgPath: '"+ret.Name+"',title: '"+ret.Name+"',subTitle: '"+ret.Sex+ret.Breed+"',remark: '"+ret.State+"'}"

    }

})

//假如这个就是model.finAll方法

var model = {

    findAll: function(p, e){

        setTimeout(function(){

            //e(第一个就是ret, 第二个就是err)

            e(1, 2)

        }, 1000)   //一秒后调用e方法

    }

}

关于直接retrun你可以放在model.findAll的回调函数里面返回值,如:

model.findAll({

    class:'Hrose_info',

    qid:ret.qid

},function(ret,err){

    for(i=0i<ret.lengthi++)

    {

        ltdata="{uid:'"+i+"',imgPath: '"+ret.Name+"',title: '"+ret.Name+"',subTitle: '"+ret.Sex+ret.Breed+"',remark: '"+ret.State+"'}"

    }

    return ltdata

})

如果还是不明白,你可以再提问