JS数组操作
2015-06-05 08:46
483 查看
以下测试结果均在ff38.0.5版本下得出
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
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代替本方法来使用。
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]
sort(orderfunction):按指定的参数对数组进行排序
var a = [5,4,3,2,1];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
slice(start,end):返回包含start位置开始到end前一位的子数组,start必填:若为负数从数组尾算起(-1为倒数第一位);end可选:若为负从结尾算起,没填则到结尾
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
splice(start,deleteCount,val1,...,valn):可向数组添加/删除元素,从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... ;函数直接对原数组进行修改,返回被删除的数组
start必选:添加/删除的位置;deleteCount必选:要删除的个数,为0则不删除;val1,...,valn可选:向数组添加的新项目
var a = [1,2,3,4,5];
var b = a.splice(0,1); //同shift , a:[2,3,4,5] b : [1]
var b = a.splice(0,0,-2,-1); //同unshift , a: [-2,-1,1,2,3,4,5] b:[]
var b = a.splice(a.length-1,1); //同pop , a :[1,2,3,4]
b:[5]
var b = a.splice(a.length,0,6,7); //同push , a:[1,2,3,4,5,6,7] b:
[]
var b = a.splice(2,1,'x'); // 替换,a:[1,2,"x",4,5]
b:
[3]
var b = a.splice(2,2,7,8,9); // 删除的同时加入 a:
[1,2,7,8,9,5] b:
[3,4]
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);
}
转载:http://www.cnblogs.com/yuzhongwusan/archive/2008/12/15/1355378.html
我对原文内容和格式做了点小小修改,方便阅读
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
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代替本方法来使用。
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]
sort(orderfunction):按指定的参数对数组进行排序
var a = [5,4,3,2,1];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
slice(start,end):返回包含start位置开始到end前一位的子数组,start必填:若为负数从数组尾算起(-1为倒数第一位);end可选:若为负从结尾算起,没填则到结尾
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
splice(start,deleteCount,val1,...,valn):可向数组添加/删除元素,从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... ;函数直接对原数组进行修改,返回被删除的数组
start必选:添加/删除的位置;deleteCount必选:要删除的个数,为0则不删除;val1,...,valn可选:向数组添加的新项目
var a = [1,2,3,4,5];
var b = a.splice(0,1); //同shift , a:[2,3,4,5] b : [1]
var b = a.splice(0,0,-2,-1); //同unshift , a: [-2,-1,1,2,3,4,5] b:[]
var b = a.splice(a.length-1,1); //同pop , a :[1,2,3,4]
b:[5]
var b = a.splice(a.length,0,6,7); //同push , a:[1,2,3,4,5,6,7] b:
[]
var b = a.splice(2,1,'x'); // 替换,a:[1,2,"x",4,5]
b:
[3]
var b = a.splice(2,2,7,8,9); // 删除的同时加入 a:
[1,2,7,8,9,5] b:
[3,4]
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);
}
转载:http://www.cnblogs.com/yuzhongwusan/archive/2008/12/15/1355378.html
我对原文内容和格式做了点小小修改,方便阅读
相关文章推荐
- 常用的对数组的操作
- JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
- json将数组(json_encode)转成字符串 输出
- js面向对象之继承-原型继承
- 十个JavaScript中易犯的小错误,你中了几枪?
- [LeetCode][JavaScript]Letter Combinations of a Phone Number
- 在JavaScript中使用NaN值的方法
- JavaScript中Number.NEGATIVE_INFINITY值的使用详解
- 简介JavaScript中POSITIVE_INFINITY值的使用
- JavaScript中的原型prototype属性使用详解
- JavaScript中constructor()方法的使用简介
- 简介JavaScript中Boolean.toSource()方法的使用
- javascript实现倒计时并弹窗提示特效
- JavaScript中toString()方法的使用详解
- js+html5获取用户地理位置信息并在Google地图上显示的方法
- 简介JavaScript中valueOf()方法的使用
- js+html5绘制图片到canvas的方法
- JavaScript中length属性的使用方法
- 简介JavaScript中charAt()方法的使用
- js+HTML5实现canvas多种颜色渐变效果的方法