日期:2014-05-16  浏览次数:20363 次

js 方法记录
现在被prototype,jquery等js框架搞得连基本的js都没有学好。今天碰到一个js,Array的问题。下面就好好学习下Array对象。

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法
arrayObject.concat(arrayX,arrayX,......,arrayX)参数 描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

返回值
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
(到目前还没用到过)

join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。

语法
arrayObject.join(separator)参数 描述
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值
返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。
(这个方法我觉得最好用了,当js中需要字符串合并是,我们只要把字符串push进Array,然后join一下就OK了,代码即清晰又有效率)

push() pop() 没什么好说的。

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

语法
arrayObject.shift()返回值
数组原来的第一个元素的值。

说明
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。
(目前还没用到过)

splice() 方法用于插入、删除或替换数组的元素。

语法
arrayObject.splice(index,howmany,element1,.....,elementX)参数 描述
index 必需。规定从何处添加/删除元素。

该参数是开始插入和(或)删除的数组元素的下标,必须是数字。

howmany 必需。规定应该删除多少元素。必须是数字,但可以是 "0"。

如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
elementX 可选。可向数组添加若干元素。

返回值
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

呵呵,Array既然是一个集合那么他当然有删除元素的函数。splice非常强大。

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
arr.splice(2,1)
document.write(arr + "<br />")

</script>


结果:
George,John,Thomas,James,Adrew,Martin
George,John,James,Adrew,Martin

自己项目中用到的一些方法:

$(document).ready(function(){
    $("input[name=sbCheckbox]").live('click',function(){
        if($(this).attr("checked") == true){
            addSbid($(this).val());
        }else{
            deleteSbid($(this).val());
        }
       
    });
});
var sbIdenArr = new Array();

function addSbid(id){
    var len = sbIdenArr.length;
    var flag = true;
    for(var i=0; i<len; i++){
        if(id == sbIdenArr[i]){
            flag = false;
            break;
        }
    }
    
    if(flag){
        sbIdenArr.push(id);
    }
}

function deleteSbid(id){
    var len = sbIdenArr.length;
    var flag = false;
    var index = 0;
    for(var i=0; i<len; i++){
        if(id == sbIdenArr[i]){
            flag = true;
            index = i;
            break;
            //找到了,就跳出,找不到flag=false 什么都不做
        }
    }
    
    if(flag){
        sbIdenArr.splice(index,1);
    }
}