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