由于JavaScript是一门宽松的语言,这种宽松可能会带来更加麻烦的事情。比如JavaScript的数组,定义与使用的方式太灵活有时候让人迷惑。下面将JavaScript中关于数组常用的方法、定义之类的用法罗列一下,希望可以帮助你更加了解JavaScript数组。

5种声明数组的方法

var a = new Array();
var a = new Array;
var a = new Array(10); //创建Array对象,并指定数组中项的个数
var a = new Array("red","blue","green");
var a = ["red"," blue"," green"];

3种定义数组属性的方法:constructor,length,prototype

constructor表示创建对象的函数。 constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如:

x = new String("Hi");
if (x.constructor == String)
// 进行处理(条件为真)。

function MyFunc {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc)
// 进行处理(条件为真)。

Length表示数组的长度,有多少项。这个就不写示例了。

prototype返回对象类型原型的引用。用 prototype 属性提供对象的类的一组基本功能。对象的新实例"继承"赋予该对象原型的操作。例如,要为 Array 对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入 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。

12个数组常用方法

concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法

//1.concat():返回一个新数组,这个新数组是由两个或更多数组组合而成的。
var a1 = [1,2,3,4];
var a2 = a1.concat("5",'6');
alert(a2); //结果:1,2,3,4,5,6
//2.join():返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
var a1 = [1,2,3,4];
var a2 = a1.join();
var a3 = a1.join(",");
var a4 = a1.join("|");
alert(a2); //结果:1,2,3,4
alert(a3); //结果:1,2,3,4
alert(a4); //结果:1|2|3|4
//3.pop():移除数组中的最后一个元素并返回该元素。如果该数组为空,那么将返回 undefined。
var a1 = [1,2,3,4];
var item = a1.pop();
alert(item); //结果:4
alert(a1);//结果:1,2,3
//4.push():将新元素添加(追加)到一个数组中,并返回数组的新长度值。push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。
var a1 = [1,2,3,4];
a1.push(5);
a1.push("6");
alert(a1);//结果:1,2,3,4,5,6
//5.reverse():返回一个元素顺序被反转的 Array 对象。
var a1 = [1,2,3,4];
a1.reverse();
alert(a1);//结果:4,3,2,1
//6.shift():移除数组中的第一个元素并返回该元素。
var a1 = [1,2,3,4];
a1.shift();
alert(a1);//结果:2,3,4
//7.unshift():将指定的元素插入数组开始位置并返回该数组。
var a1 = [1,2,3,4];
a1.unshift(5);
alert(a1);//结果:5,1,2,3,4
//8.slice():返回一个数组的一段。a1.slice(start, [end]),slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。
var a1 = [1,2,3,4];
var a2 = a1.slice(-1);
var a3 = a1.slice(0,-1);
var a4 = a1.slice(1);
alert(a2);//结果:4
alert(a3);//结果:1,2,3
alert(a4);//结果:2,3,4
//9.splice():从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
//arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
var a1 = [1,2,3,4];
var a2 = a1.splice(1,0);
var a3 = a1.splice(1,1);
var a4 = a1.splice(1,1,"5");
alert(a2);//结果:
alert(a3);//结果:2
alert(a1);//结果:1,5,4
//10.sort():返回一个元素已经进行了排序的 Array 对象。
var a1 = [2,3,1,4,"b","a"];
var a2 = a1.sort();
alert(a2);//结果:1,2,3,4,a,b
//11.toString():返回对象的字符串表示。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.toString();
alert(a2);//结果:1,2,3,4,b,a
//12.valueOf():返回指定对象的原始值。
var a1 = [1,2,3,4,"b","a"];
var a2 = a1.valueOf();
alert(a2);//结果:1,2,3,4,b,a

indexOf扩展:

if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
function testIndexOf()
{
var a =[1,2,3,4];
alert(a.indexOf(3));
}
<input type="button" value="测试获取数组下标" onclick="testIndexOf()" />

最新文章

  1. jsp页面el表达式不起作用
  2. 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理【转】
  3. C# 中 static 的用法
  4. (C#)的命名规范
  5. Python之异常篇 [待更新]
  6. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
  7. 一个ASP.NET Web API 2.0应用
  8. 征服恐惧!用 Vim 写 iOS App
  9. Linux下Tomcat进行远程调试
  10. selenium——鼠标事件
  11. Composer更新慢的解决方案
  12. Linux零基础入门第四课
  13. AndroidStudio 开发JNI
  14. Remote Debugging (1)
  15. Windows10环境下loadrunner11 安装
  16. JS浮点数精确计算方法
  17. Java反射机制动态代理
  18. xml 引入约束文件
  19. Linux系统修改编码(转)
  20. springboot读取配置文件的顺序

热门文章

  1. CentOS 7.2使用tomcat部署jenkins2.130
  2. 将Render博客搬至GIT(偷懒)
  3. JavaScript 数组操作方法 和 ES5数组拓展
  4. 【MFC】学习与问题整合
  5. FPGA学习-PS2接口
  6. js如何处理字符串中带有↵字符
  7. iostat lsof
  8. iOS-获取webView的高度
  9. Ligerui首页的快速搭建
  10. Swagger字段说明