现在被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); } }