属性名 描述
prototype 为对象添加属性、方法
constructor 返回数组对象引用
length 返回数组元素数目
方法名 描述 返回 更改原数组
concat() 连接多个数组 连接后新数组 N
join('') 将数组中所有元素合为一个字符串。按分隔符划分 合并后新数组 N
toString() 数组转换为字符串( 与无参join相同,逗号连接) 转换后字符串 N
pop() 删除数组最后一个元素(栈顶) 删除的元素值 Y
push() 向数组的末尾添加一个/多个元素 新数组长度 Y
shift() 删除数组第一个元素 删除的元素值 Y
unshift() 向数组的开头添加一个/多个元素 新数组长度 Y
reverse() 颠倒数组中元素的顺序 倒序后数组 Y
slice(start,end) 截取从start到end子数组(end省略为数组末尾) 截取子数组 N
splice() (start,length,item1,item2,...)删除元素并添加新元素 删除子数组 Y
sort() 对数组的元素进行排序(可自定规律) 排序后数组 Y
valueOf() 返回 Array 对象的原始值 Array对象 N
indexOf() 返回元素在数组中首次出现的位置(严格匹配===) 下标/-1 N

创建 Array 对象

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
var arr = []; //字面量方式

经测试用字面量方式跟new Array()耗时差不多,使用习惯的差距吧~ new Array()能初始化长度~

属性

prototype 向对象添加属性和方法

function em(A,B)
{this.A = A;this.B = B;
}
var e = new em("AA","BB");
em.prototype.C = null;
e.C = 20000;
console.log(e.C); //20000
console.log(e); //em {A:"AA" , B:"BB" , C : 20000 }

constructor 返回对创建此对象的数组函数的引用

function employee(name,job)
{this.name = name;this.job = job;
}
var bill = new employee("Bill");
console.log(typeof bill.constructor); // function
console.log(bill.constructor); //function employee(name){this.name=name;this.job=job;}

方法

concat() 连接两个或更多的数组(返回被连接数组的副本)

var arr = [1, 2, 3];
var arr1 = [6, 7];
console.log(arr.concat(4, 5, arr1)); //[1, 2, 3, 4, 5, 6, 7]

join() 把数组的所有元素放入一个字符串,元素通过指定的分隔符分隔。

var arr = ['item 1', 'item 2', 'item 3'];
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>'; //'<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>'

toString() 数组转换为字符串(与无参的 join()方法返回的串相同)

var arr = new Array(3)
arr[0] = "A"
arr[1] = "B"
arr[2] = "C"
console.log(arr.toString()); //"A,B,C"

pop() 删除数组的最后一个元素,数组长度减 1,并返回被删除的元素的值

若数组为空,则pop()返回undefined值

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.pop()); //"C"
console.log(arr); //["A", "B"]

push() 向数组的末尾添加一个或更多元素,并返回新的长度

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.push('D')); //4
console.log(arr); ["A", "B", "C" , "D"]

reverse() 颠倒数组中元素的顺序

var arr = ["A", "B", "C"];
arr.reverse();
console.log(arr);// ["C", "B", "A"]

slice(start,end) 从数组中返回选定的子数组

var arr = ["A", "B", "C"];
// 从第一个元素开始截取到数组结尾
console.log(arr.slice(1)); //["B", "C"]
console.log(arr); //["A", "B", "C"]

splice() 删除元素,并向数组添加新元素
(直接对数组操作)

① 删除指定范围的数组元素:

var arr = new Array(6);arr[0] = "A"; arr[1] = "B";arr[2] = "C";arr[3] = "D";arr[4] = "E";arr[5] = "F";
console.log(arr); //["A", "B", "C", "D", "E", "F"]
// 删除第三个元素以后的三个数组元素(包含第三个元素)
console.log(arr.splice(2, 3));  //["C", "D", "E"]
console.log(arr); //["A", "B", "F"]

② 从指定下标开始插入指定元素(元素个数不限):

    var arr = new Array(6);arr[0] = "A"; arr[1] = "B";arr[2] = "C";arr[3] = "D";arr[4] = "E";arr[5] = "F";
console.log(arr); //["A", "B", "C", "D", "E", "F"]
console.log(arr.splice(2, 0, "AA","BB")); // []
console.log(arr);//["A", "B", "AA" , "BB" , "C", "D", "E", "F"]

③ 删除指定范围的数组元素,并用指定元素替换(元素个数不限):

var arr = new Array(6);arr[0] = "A"; arr[1] = "B";arr[2] = "C";arr[3] = "D";arr[4] = "E";arr[5] = "F";
console.log(arr);//["A", "B", "C", "D", "E", "F"]
console.log(arr.splice(2, 1, "AA","BB")); // ["C"]
console.log(arr); //["A", "B", "AA", "BB", "D", "E", "F"]

sort() 对数组的元素进行排序
对数组的引用

数组在原数组上进行排序,不生成副本。该方法默认是按照字符编码(ASCII)的顺序进行排序的

var arr = new Array(3);arr[0] = "D";arr[1] = "S";arr[2] = "A";
console.log(arr); //["D", "S", "A"]
console.log(arr.sort()); //["A", "D", "S"]

自行指定排序规则。如下:

var arr = new Array(6);arr[0] = 10;arr[1] = 5;arr[2] = 40;arr[3] = 25;arr[4] = 1000;arr[5] = 1;
console.log(arr); //[10, 5, 40, 25, 1000, 1]
//升序
console.log(arr.sort(function (a, b) {return a - b;}));// [1, 5, 10, 25, 40, 1000]

valueOf() 返回相应的原始值

var arr = new Array(2);arr[0] = 10arr[1] = 5
console.log(arr); //[10, 5]
console.log(typeof arr.valueOf()); //object
console.log(arr.valueOf()); //[10, 5]

shift() 删除并返回数组的第一个元素

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.shift()); //A
console.log(arr); //["B", "C"]

unshift() 向数组的开头添加一个或更多元素,并返回新的长度

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.unshift("AA")); //4
console.log(arr);//["AA", "A", "B", "C"]

indexOf() 返回元素在数组中出现位置

额 之前一直以为只有string有这个方法... 补上补上

var arr = ['orange', '2016', undefined , null ,NaN];
console.log(arr.indexOf('orange')); //0
console.log(arr.indexOf('o')); //-1
console.log(arr.indexOf('2016'));  //1
console.log(arr.indexOf(2016));  //-1
console.log(arr.indexOf('undefined'));  //-1
console.log(arr.indexOf(null));  //3
console.log(arr.indexOf(NaN));  //-1

以上只是为了论证这里的indexOf使用的是严格匹配(===),不会像string的indexOf一样隐式转换成字符串进行匹配~

JS对象 - Array属性方法汇总相关推荐

  1. js如何操作表格(常用属性方法汇总)

    js如何操作表格(常用属性方法汇总) 一.总结 一句话总结: 二.表格相关的属性和方法 1.1 Table 对象集合 cells[] 返回包含表格中所有单元格的一个数组. 语法:tableObject ...

  2. TagCanvas文字云属性+方法汇总

    TagCanvas文字云属性+方法汇总 前言 导入 使用 可用属性 js方法 jq方法 前言 甲方爸爸要一个文字旋转的炫酷功能,无意间发现了这个插件,用起来还可以就是感觉扩展性不强,由于网上的资料太少 ...

  3. 遍历和添加json对象的属性 和 遍历普通js对象的属性

    1. 遍历 json 对象的属性 //定义json对象 var person= { name: 'zhangsan', pass: '123', fn: function(){ alert(this. ...

  4. python与正则表达式(part8)--compile对象及match对象的属性方法

    文章目录 compile对象属性(compile函数生成的正则表达式对象的属性) flags参数扩展 举个例子 match对象的属性方法 1.属性变量 2.属性方法 举个例子 compile对象属性( ...

  5. 使用变量的值作为JS对象的属性名,从而获取其对应的值

    使用变量的值作为JS对象的属性名,从而获取其对应的值 <script>var object={"a":1111,"b":2222};var para ...

  6. 基于js对象,操作属性、方法详解

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...

  7. JS——判断变量类型方法汇总

    判断变量类型 一.使用typeof判断变量类型 二.使用instanceof判断变量的类型 三.使用constructor判断变量的类型 四.使用Object.prototype.toString.c ...

  8. JS中Object的方法汇总,包括assign、create、prototype等等

    JavaScript Object JS的Object到底是啥东西呢?它有啥东西呢? 我们简单知道的,就是new一个Object实例对象,那这个实例对象又何Object又有什么关系呢? 先打印一下看看 ...

  9. 史上最全js数组,字符串方法汇总

    目录 一.数组 (1)for..in一般用于遍历对象的属性 (2)for..of (3)Object.keys() (4)Object.values() (5)Object.entries() (6) ...

最新文章

  1. [ 转]Python模块(二)import和from...import的区别
  2. SecureCRT通过密钥进行SSH登录
  3. 历届试题 大臣的旅费 树形DP
  4. php clear(),PHP Ds\Collection clear()用法及代码示例
  5. HDU 4812 D Tree (点分治) (2013ACM/ICPC亚洲区南京站现场赛)
  6. springboot创建子模块时遇到子模块覆盖父模块问题解决
  7. 修改安装路径 pip 以及修改运行路径
  8. 【Jmeter篇】1小时轻松搞定项目接口自动化测试与数据驱动
  9. java tomcat 读取配置文件端口_跟我学Java编程—应用读写项目配置文件的Properties类...
  10. Spinlock 简介(转)
  11. C#代码生成目录树(转)
  12. 吃了核辐射食物怎么办_尿酸过高怎么办?这几种食物,平时可多吃
  13. Wooden Signs Gym - 101128E (DP)
  14. Android pad 刷成苹果,利用安卓手机运行checkra1n越狱你的iPhone/iPad教程,支持12.3-13.5-13.7-14.3-14.4系统...
  15. 计算机网络技术教程-董文磊-专题视频课程
  16. matplotlib工具栏源码探析三(添加、删除自定义工具项)
  17. double浮点数转字符串算法
  18. 回车、换行、空格的ASCII码值(不同OS平台下文件换行定义)
  19. php视频教程折蜗牛,折纸蜗牛的手工折法视频教程
  20. Android 模拟器 计步器,春雨计步器怎样刷步数图文教程

热门文章

  1. VS 工程只生成dll不生成lib的解决方案
  2. C++基础教程之数据结构
  3. 基于OpenCV的计算机视觉入门(2)图片几何变换入门
  4. 行业深度见解•SD-WAN对于企业云的重要性 1
  5. linux基本命令之chattr与lsattr
  6. 怎么把AI文件导入到PS里面
  7. 视频分享:挨踢项目求生法则(2)——战略篇
  8. 【CS229】监督学习 vs. 无监督学习
  9. 树变二叉树结点数计算
  10. Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5