js 数组操作
toString():把数组转换成一个字符串
toLocaleString():把数组转换成一个字符串
join():把数组转换成一个用符号连接的字符串
shift():将数组头部的一个元素移出
unshift():在数组的头部插入一个元素
pop():从数组尾部删除一个元素
push():把一个元素添加到数组的尾部
concat():给数组添加元素
slice():返回数组的部分
reverse():将数组反向排序
sort():对数组进行排序操作
splice():插入、删除或者替换一个数组元素
1.shift
删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
- var a = [1,2,3,4,5];
- var b = a.shift(); //a:[2,3,4,5] b:1
2.unshift
将参数添加到原数组开头,并返回数组的长度
- var a = [1,2,3,4,5];
- var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
3.pop
删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
- var a = [1,2,3,4,5];
- var b = a.pop(); //a:[1,2,3,4] b:5
4.push
将参数添加到原数组末尾,并返回数组的长度
- var a = [1,2,3,4,5];
- var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
5.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]
6.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
7.reverse将数组反序
- var a = [1,2,3,4,5];
- var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
8.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]
9.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]
10.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"
11.数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript里还可以有别的集合吗?
由于JavaScript的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。下面比较一下Array和Object的特性:
- //Array:
- /*新建:*/var ary = new Array(); 或 var ary = [];
- /*增加:*/ary.push(value);
- /*删除:*/delete ary[n];
- /*遍历:*/for ( var i=0 ; i < ary.length ; ++i ) ary[i];
- //Object:
- /*新建:*/var obj = new Object(); 或 var obj = {};
- /*增加:*/obj[key] = value; (key为string)
- /*删除:*/delete obj[key];
- /*遍历:*/for ( var key in obj ) obj[key];
12.从上面的比较可以看出Object完全可以作为一个集合来使用,在使用Popup窗口创建无限级Web页菜单(3)中我介绍过Eric实现的那个__MenuCache__,它也就是一个模拟的集合对象。
如果我们要在Array中检索出一个指定的值,我们需要遍历整个数组:
- var keyword = ;
- for ( var i=0 ; i < ary.length ; ++i )
- {
- if ( ary[i] == keyword )
- {
- // todo
- }
- }
而我们在Object中检索一个指定的key的条目,只需要是要使用:
- var key = '';
- var value = obj[key];
- // todo
13.数组字符串化
arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
14.数组的拷贝
arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
14.prototype 属性
返回对象类型原型的引用。prototype 属性是 object 共有的。
objectName.prototype
objectName 参数是object对象的名称。
说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。
对于数组对象,以以下例子说明prototype 属性的用途。
给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Array.prototype, 并使用它。
function array_max()
{
var i,
max = this[0];
for (i = 1; i < this.length; i++)
{
if (max < this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max();
该代码执行后,y 保存数组 x 中的最大值,或说 6。
15、constructor 属性
表示创建对象的函数。
object.constructor //object是对象或函数的名称。
说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。
x = new String("Hi");
if (x.constructor == String) // 进行处理(条件为真)。
或者:
function MyFunc {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc) // 进行处理(条件为真)。
js 数组操作的更多相关文章
- js数组操作-添加,删除
js 数组操作常用方法. push():在数组后面加入元素,并返回数组的长度 unshift():在数组前面加入元素,并返回数组的长度 pop()删除最后一个元素 shift()删除第一个元素 var ...
- 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作
页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...
- js数组操作-最佳图解
js数组操作-最佳图解
- js数组操作find查找特定值结合es6特性
js数组操作find查找特定值结合es6特性
- JS数组操作:去重,交集,并集,差集
原文:JS数组操作:去重,交集,并集,差集 1. 数组去重 方法一: function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map ...
- js数组操作
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...
- js数组操作【转载】
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...
- php数组转换js数组操作及json_encode应用
对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过ph ...
- js数组操作记录
一 .splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 in ...
- js 数组操作大集合
js数组的操作 用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目.用到数组的地方非常多.自以为js高手的自己竟然无从下手 ...
随机推荐
- iOS - Charles抓包数据
一.Charles Charles破解版下载地址点我 1.1 Charles主要的功能 .截取Http.Https网络请求内容 .支持修改网络请求参数,方便调试 .支持网络请求的截取 并动态修改 1. ...
- css---媒体查询
简单示例: <style type="text/css"> /* 小于 300的时候 */ @media screen and (max-width: 400px){ ...
- html的base标签
提示:请把 <base> 标签排在 <head> 元素中第一个元素的位置,这样 head 区域中其他元素就可以使用 <base> 元素中的信息了. 注释:如果使用了 ...
- POJ-2353 Ministry(动态规划)
Ministry Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4761 Accepted: 1528 Special Judg ...
- Kettle 4.2源码分析第三讲--Kettle 转换机制transformation介绍
转换机制 每个转换步骤都是ETL数据流里面的一个任务.转换步骤包括输入.处理和输出.输入步骤从外部数据源获取数据,例如文件或者数据库:处理步骤处理数据流,字段计算,流处理等,例如整合或者过滤.输出步骤 ...
- 最长上升子序列 OpenJ_Bailian - 2757 dp模板
第一种是用以前状态更新当前状态(人人为我) 第二种是用当前状态更新以后状态(我为人人) 都是n^2代码: 对于人人为我的更新方法,可以用数据结构储存“人人”对其进行线性\二分优化. ; int a[m ...
- 卿学姐与公主 UESTC - 1324 分块模板题
题意:http://acm.uestc.edu.cn/#/problem/show/1324 中文题,自己看喽. 题解:分块模板,update时顺便更新块属性.ask时先判掉belong[l]==be ...
- 堆内存泄漏移除导致tcp链接异常高
故障现象: 1:活动前端Nginx服务器TCP连接数到1万多 2:活动后端Tomcat其中1台TCP连接数达4千,并且CPU瞬间到780%(配置8核16G),内存正常 3:重启后端Tomcat后,TC ...
- TCP 123=网络时间协议(NTP),Net Controller
TCP 123=网络时间协议(NTP),Net Controller
- w_scripting_language
https://en.wikipedia.org/wiki/Scripting_language A scripting or script language is a programming lan ...