实例讲解JS中数组Array的操作方法


Posted in Javascript onMay 09, 2014

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,...
在清空数组时,只需传递startIndex。
如果不删除所有元素,再传递deleteCount参数。
splice还具有先删除后添加的功能,即先删除几个元素,然后在删除的位置再添加若干元素,删除与添加的元素的个数没有必须相等,这时侯deleteCount也是要用到的。
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);
}
Javascript 相关文章推荐
用 Javascript 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
Jan 26 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
基于javascript如何传递特殊字符
Nov 30 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
Javascript中this绑定的3种方法与比较
Oct 13 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
Node.js系列之连接DB的方法(3)
Aug 30 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
一个JavaScript的求爱小特效
May 09 #Javascript
js中的setInterval和setTimeout使用实例
May 09 #Javascript
js获取 type=radio 值的方法
May 09 #Javascript
js实现的点击数量加一可操作数据库
May 09 #Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 #Javascript
js四舍五入数学函数round使用实例
May 09 #Javascript
JavaScript实现的购物车效果可以运用在好多地方
May 09 #Javascript
You might like
php关键字仅替换一次的实现函数
2015/10/29 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
初三家长会邀请函
2014/01/18 职场文书
安全生产实施方案
2014/02/23 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
村容村貌整治方案
2014/05/21 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL