关于javascript数组的定义与其一些常用方法总结
由于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()" />
关于javascript数组的定义与其一些常用方法总结的更多相关文章
- JavaScript数组中的22个常用方法
数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍. ...
- javascript数组的申明方式以及常用方法
数组的定义: 方法1. var mycars=new Array()mycars[0]="Saab"mycars[1]="Volvo"mycars[2]=&qu ...
- javascript数组遍历的几种常用方法性能分析对比
前言: 数组遍历有很多种方法,虽然不同方法有不同的特性及适用环境,除了普通飞for循环之外,for...in能直接输出数组元素的索引,for...of能直接输出数组元素的值,map则可以直接生成新的数 ...
- JavaScript数组的三种定义方法
数组的定义: <script type="text/javascript"> // <!--声明数组--> // 1.先声明数组长度,后进行赋值 var a ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- JavaScript数组对象常用方法
JavaScript数组对象常用方法 方法 形式 返回值 是否改变原数组 描述 concat -items: ConcatArray[] 追加之后的数组 否 连接两个或更多的数组,并返回结果.注意 c ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作 http://www.jb51.net/article/76601.htm
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- IOS下WEBVIEW 的javascript数组与json定义 及交互
最近在折腾IOS新闻浏览客户端,当中需要用到webview传递JSON数据到IOS上,然后在IOS上解析.刚入门IOS不久,看了不少的书,但都是囫囵吞枣.在开发过程中,遇到不少问题.开发环境mac m ...
- JavaScript数组方法速查,32个数组的常用方法和属性
JavaScript数组方法速查手册极简版 http://30ke.cn/doc/js-array-method JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方 ...
随机推荐
- Android Test和Logcat
一 测试相关概念 是否有源码 黑盒测试: 测试工具 白盒测试: 对所有的源码特别熟悉 对特定的代码进行测试 都是编程 时间 单元测试(程序员) 模块测试 集成测试 系统测试 回归测试(改bug) 压力 ...
- C++11 type_traits 之is_pointer,is_member_function_pointer源码分析
源码如下: template<typename> struct __is_pointer_helper : public false_type { }; template<typen ...
- Java异常处理介绍(Java知识的重点内容)
Java 异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你 ...
- 【转】unity 热更新思路和实现
声明:本文介绍的热更新方案是我在网上搜索到的,然后自己修改了一下,相当于是借鉴了别人的思路,加工成了自己的,在此感谢无私分享经验的朋友们. 想要使用热更新技术,需要规划设计好资源比较策略,资源版本,确 ...
- 几个常见移动平台浏览器的User-Agent
之前介绍的手机站跳转url的一片文稿中提到,依据User Agent判断终端的方法.(文章地址:http://www.cnblogs.com/dereksunok/p/3664169.html ) 若 ...
- 【shell 练习5】编写简单的多级菜单
一.简单的多级菜单 [root@web129 ~]# cat menu.sh #!/bin/bash #shell菜单演示 function menu() { echo -e `date` cat & ...
- 【MySQL解惑笔记】Centos7下卸载彻底MySQL数据库
彻底卸载Yum安装的MySQL数据库 在我第二章MySQL数据库基于Centos7.3-部署过程中,因为以前安装过其它的版本所以没有卸载干净影响后期安装 一.卸载Centos7自带的Maridb数据库 ...
- 局部加权回归(LWR) Matlab模板
将百度文库上一份局部加权回归的代码,将其改为模板以便复用. q2x,q2y为数据集,是n*1的矩阵: r是波长参数,就是对于距离的惩罚力度: q_x是要拟合的数据横坐标,是1*n的矩阵: 得到的q_y ...
- STM32单片机是如何启动的?
STM32单片机是如何启动的? STM32中的内存 STM32中的内存包含两块主要区域:flash memory(只读).static ram memory(SRAM,读写).其中,flash mem ...
- Python3 小工具-ARP扫描
from scapy.all import * import optparse import threading import os def scan(ipt): pkt=Ether(dst='ff: ...