实例讲解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 相关文章推荐
判断脚本加载是否完成的方法
May 26 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
在JavaScript中typeof的用途介绍
Apr 11 Javascript
jQuery 无刷新分页实例代码
Nov 12 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
Nov 30 Javascript
jQuery自动完成插件completer附源码下载
Jan 04 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
Dec 13 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
JS实现select选中option触发事件操作示例
Jul 13 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下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
用原生js做单页应用
2017/01/17 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
小学二年级评语
2014/04/21 职场文书
商场促销活动总结
2014/07/10 职场文书
食品质检员岗位职责
2015/04/08 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
Python实现视频自动打码的示例代码
2022/04/08 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL