Created
September 16, 2014 15:19
-
-
Save reacher-lu/0e9288a556d535e443cf to your computer and use it in GitHub Desktop.
github数组相关
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ | |
var arr = new Array(); | |
arr[0] = "aaa"; | |
arr[1] = "bbb"; | |
arr[2] = "ccc"; | |
//alert(arr.length);//3 | |
arr.pop(); | |
//alert(arr.length);//2 | |
//alert(arr[arr.length-1]);//bbb | |
arr.pop(); | |
//alert(arr[arr.length-1]);//aaa | |
//alert(arr.length);//1 | |
var arr2 = new Array(); | |
//alert(arr2.length);//0 | |
arr2[0] = "aaa"; | |
arr2[1] = "bbb"; | |
//alert(arr2.length);//2 | |
arr2.pop(); | |
//alert(arr2.length);//1 | |
arr2 = arr2.slice(0,arr2.length-1); | |
//alert(arr2.length);//0 | |
arr2[0] = "aaa"; | |
arr2[1] = "bbb"; | |
arr2[2] = "ccc"; | |
arr2 = arr2.slice(0,1); | |
alert(arr2.length);//1 | |
alert(arr2[0]);//aaa | |
alert(arr2[1]);//undefined | |
shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined | |
var a = [1,2,3,4,5]; | |
var b = a.shift(); //a:[2,3,4,5] b:1 | |
unshift:将参数添加到原数组开头,并返回数组的长度 | |
var a = [1,2,3,4,5]; | |
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 | |
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 | |
pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined | |
var a = [1,2,3,4,5]; | |
var b = a.pop(); //a:[1,2,3,4] b:5 //不用返回的话直接调用就可以了 | |
push:将参数添加到原数组末尾,并返回数组的长度 | |
var a = [1,2,3,4,5]; | |
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7 | |
concat:返回一个新数组,是将参数添加到原数组中构成的 | |
var a = [1,2,3,4,5]; | |
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7] | |
splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... | |
var a = [1,2,3,4,5]; | |
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] | |
var b = a.splice(0,1); //同shift | |
a.splice(0,0,-2,-1); var b = a.length; //同unshift | |
var b = a.splice(a.length-1,1); //同pop | |
a.splice(a.length,0,6,7); var b = a.length; //同push | |
reverse:将数组反序 | |
var a = [1,2,3,4,5]; | |
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1] | |
sort(orderfunction):按指定的参数对数组进行排序 | |
var a = [1,2,3,4,5]; | |
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5] | |
slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 | |
var a = [1,2,3,4,5]; | |
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5] | |
join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 | |
var a = [1,2,3,4,5]; | |
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" | |
再给个利用数组模拟javaStringBuffer处理字符串的方法: | |
/** | |
* 字符串处理函数 | |
*/ | |
function StringBuffer() | |
{ | |
var arr = new Array; | |
this.append = function(str) | |
{ | |
arr[arr.length] = str; | |
}; | |
this.toString = function() | |
{ | |
return arr.join(""); //把append进来的数组ping成一个字符串 | |
}; | |
} | |
今天在应用中突然发现join是一种把数组转换成字符串的好方法,故封装成对象使用了: | |
/** | |
* 把数组转换成特定符号分割的字符串 | |
*/ | |
function arrayToString(arr,separator) | |
{ | |
if(!separator) separator = "";//separator为null则默认为空 | |
return arr.join(separator); | |
} | |
/** | |
* 查找数组包含的字符串 | |
*/ | |
function arrayFindString(arr,string) | |
{ | |
var str = arr.join(""); | |
return str.indexOf(string); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment