JavaScript的json和Array及Array数组的使用方法
1、关于json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据!
- //Array数组
- //数组的常用语法如下 数组用中括号<[]存储数据> length数组的长度<数组独有!>
- var Array=[1,3,5,7,9];
- // 数组名 Array<数组/保留字,保留字>
- //alert(Array.length); 弹出当前 Array数组的长度length
- //alert(Array[0]); 数组的取值 数组名加[]中括号 括号里面是第几个
- //Array数组的循环 <遍历>
- //数组的第一种循环 for(var i=0;i<Array.length;i++){}
- //数组的第二种循环 for(var i in Array){alert(i);}
- //json 数据集
- //常用的json语法 如下 json用大括号<{}存储数据> length不能表示json数据集的长度<数组独有!>
- // var json={a:5,b:7,c:9}; 和数组的区别
- //声明变量 变量名={变量名:冒号 值,逗号隔开}
- // json名 json<数据集/保留字>
- // alert(json.a); // 取值方法1 变量名<.句号 下标>变量名
- // alert(json['a']); // 取之方法2变量名[]中括号['变量名']; 写成字符串
- //例子如下
- // var aNumber={a:5,b:6,c:7};
- // aNumber.b++; //能够++ 6=6+1/6=+1/6++
- // alert(aNumber['b']); //结果是7
- //json的循环 用for in 循环 <只能用for in 循环>
- // for(var i in aNumber){
- // alert(aNumber[i]);
- //弹出数据集的 所有遍历 的值
- // };
- // json数据集与Array数组的区别!<三点>
- // 1、 存储数据: json数据集 Array数组
- // json={a:5,b:6,c:7}; Array=[1,2,3,4];
- // 2、取值方法: json数据集 Array数组
- // json[i]全部/ json['a'];<变量名外加字符串> Array[i];全部/ Array[0];
- // 2、循环方法: json数据集 Array数组
- // json没有length只能用for in 循环 数组能用for循环和for in循环 length是数组的长度<只有数组能使用>
JavaScript arguments对象
1、在JavaScript中,arguments对象是比较特别的一个对象,它可变参可以存储所有的参数. arguments非常类似Array数组,但实际上又不是一个Array数组.在函数中,调用arguments是不必要写成任何函数名,而是直接写arguments即可.
2、arguments对象的长度是由实参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的.
- function sum(){
- var sum=0;
- for(var i=0;i<arguments.length;i++){ //arguments存储了所有的参数
- sum=sum+arguments[i]; //a+=arguments; 每个数值被循环到后都与sum相加
- }
- return sum; //返回return写在循环下面是循环结束后得到的结果
- }
- alert(sum(81,88,999,4,8,6,3,4,7));
所有的形参都存储到了arguments里面 实参直接传给arguments
2、Array数组 使用原则,数组中只存储一种变量!
数组使用的语法
- //数组的写法
- //写法一
- var arr=new Array(8,6,4);
- //写法二
- var arr=[8,6,4];
我们可以看到最后的结果都是一样的但是写法二的效率明显要高的多 数组名=[]; 代码短
如果我们需要取得数组中存储的某一个值,这个时候我们直接用数组加下标即可 如果需要获取数组的存储的数值的长度的话使用length 代码如下:
- var aUserName=['一','二','三','四','五']; //声明一个数组
- alert(aUserName[0]); //弹出找到这个数组的第一个值
- var b=aUserName.length; //把这个数组的长度length赋予给b
- alert(b); //弹出这个数组的长度
length也能限制数组的长度 代码如下:
- var aUserName=['一','二','三','四','五']; //声明一个数组
- alert(aUserName[0]); //弹出找到这个数组的第一个值
- alert(aUserName.length); //弹出这个数组的长度
- aUserName.length=3; //length可以限制数组的长度
- alert(aUserName); //这时候弹出数组明显只能看到3位数值
数组Array 对象方法 | |
数组名+方法名 | 描述 |
concat() | 连接两个或更多的数组,并返回结果。 |
join() | 把数组的所有元素放入一个字符串.元素通过指定的分隔符进行隔. |
pop() | 删除并返回数组的最后一个元素 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reverse() | 颠倒数组中元素的顺序。 |
shift() | 删除并返回数组的第一个元素 |
slice() | 从某个已有的数组返回选定的元素 |
sort() | 对数组的元素进行排序 |
splice() | 删除元素,并向数组添加新元素。 |
toSource() | 返回该对象的源代码。 |
toString() | 把数组转换为字符串,并返回结果。 |
toLocaleString() | 把数组转换为本地数组,并返回结果。 |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
valueOf() | 返回数组对象的原始值 |
- //push使用方法
- var aArr=[6,7,8]; //声明数组
- aArr.push(9,10,11); //像数组尾部添加数值 可添加一个或者多个
- alert(aArr); //弹出的结果是6,7,8,9,10,11,
2、从数组尾部开始的删除, 语法:数组名.pop(); 方法pop()每次去删除数组Array的最后一个元素,把数组长度减1,并且返回它删除后剩余的元素的值。
- //push使用方法
- var aArr=[6,7,8]; //声明数组
- aArr.pop() //使用后每次删除最后一个数值 直至删除完毕 剩余6 7
- aArr.pop() //剩余6
- aArr.pop() //空
- alert(aArr); //弹出的结果是6,7,8,9,10,11,
3、 从头部开始的添加 方法unshift() 是将把它括号里面 的参数插入数组Array数组的头部,并将已经存在的元素顺次(向下排列 比如原来的第一位是1 下标是0当使用 unshift(9)方法 插入9 以后 9的下标是0 1的下标改变为1 在0的后面 依次向下排列 ) 移地到较高的下标处,以便留出空间。
- //unshift的使用方法
- var arr=[6,7,8];
- arr.unshift(9); //删除数组的首个元素
- alert(arr); //结果为9,6,7,8
4、从头部开始的删除 方法shift()和方法Array.pop()相似,只不过它在数组头部(从数组头部开始删除)操作,而不是在尾部操作。该方法常常和unshift()一起使用。
- //shift的使用方法
- var arr=[6,7,8];
- arr.shift(); //删除数组的首个元素
- alert(arr); //结果为7,8
5、从位置删除、添加、置换数组 语法 数组.splice(start, deleteCount, value, ...) 中间是逗号隔开 能实增 删 改
start代表的是
开始插入和(或)删除的数组元素的位置(是下标)从下标的位置开始 即0代表1 开始的位置
deleteCount
从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value, ...
要插人数组的零个或多个值(多个时 中间用逗号隔开),从start所指的下标处开始插入。
代码如下:
- //方法splice 使用方法
- var arr=[1,2,3,4,5,6];
- arr.splice(0,1,9,9,9,9); //第一个值代表从第一个开始 , 删除的个数 , 后面是需要 添加的值
- alert(arr); //弹出结果 9,9,9,9,1,2,6
置换:
- //方法splice 使用方法
- var arr=[1,2,3,4,5,6];
- arr.splice(0,2,9,9); //第一个值代表从第一个开始 , 删除的个数 , 后面是需要 添加的值
- alert(arr); //弹出结果 9,9,3,4,5,6
6、数组的拼接 语法 数组.concat() 将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。
代码如下:
- var arr=[1,2,3,4,5,6]
- var brr=['a','b','c','d','e','f'];
- alert(brr.concat(arr)); //弹出结果a,b,c,d,e,f,1,2,3,4,5,6
把数组arr拼接在数组brr后面
改变代码顺序:
- var arr=[1,2,3,4,5,6]
- var brr=['a','b','c','d','e','f'];
- alert(arr.concat(brr)); //弹出结果1,2,3,4,5,6,a,b,c,d,e,f,
把数组brr拼接在数组arr后面
concat常用于拼接. 拼接和弹出是一块儿写在alert()里面的.
7、数组的分隔符语法.join(); 需要使用时写在alert()里面 且分隔符用 ' ' 用单引号包住!
代码如下:
- //join 语法
- var arr=[1,2,3,4,5,6];
- alert(arr.join(' ')); //单引号直接可以是任何字符 弹出的结果是 1~2~3~4~5~6 包括空格
不会增加 只有在直接作用时才有用 是连接符 .拼接的元素 在两个两个元素之间进行添加 当只在括号加('')两个空单引号时 会把逗号给去掉 成拼接作用
join括号里面的参数: 在返回的字符串中用于分隔数组元素的字符或字符串,它是可选的。如果省略了这个参数,用逗号作为分隔符
8、数组的排序 语法 数组名.sort();
- //sort数组的排序
- var arr=[8,9,7,3,6,4,5,2,1];
- var brr=['float', 'width', 'alpha', 'zoom', 'left'];
- arr.sort();
- brr.sort();
- alert(arr);//结果为 1,2,3,4,5,6,7,8,9
- alert(brr);//结果为alpha,float,left,width,zoom
方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。
如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:
如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。
如果a等于b,就返回0。
如果a大于b,就返回一个大于0的值。
代码如下:
- //sort数组的排序
- var arr=[12, 8, 99, 19, 112];
- arr.sort(function (n1,n2){ //对比值 两个形参
- if(n1<n2) //1<2 返回-1 将两个数的位置调换 a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值
- {
- return -1;
- }
- else if(n1>n2) //1>2 返回1 返回一个正数 然后进行排序
- {
- return 1;
- }
- else
- {
- return 0; // 如果n1等于n2,就返回0 保持这个顺序
- }
- });
- alert(arr);
加入这个函数
其实还可以简写 简写方式如下:
- //sort数组的排序
- var arr=[12, 8, 99, 19, 112];
- arr.sort(function (n1,n2){ //对比值 两个形参
- //return n1-n2; //升序 小到大
- return n2-n1; //降序 大到小
- });
- alert(arr);
9、颠倒顺序 数组名.reverse( )颠倒数组中元素的顺序
代码如下:
- //reverse数组的颠倒顺序
- var arr=[1,2,3,4,5,6,7,8,9,10];
- arr.reverse();
- alert(arr); //结果为10,9,8,7,6,5,4,3,2,1
10、把数组类型转为字符串 语法 数组名.toString( ); 将把数组转换成一个字符串,并且返回这个字符串。当数组用于字符串环境中时,JavaScript会调用这一方法将数组自动转换成一个字符串。但在某些情况下,需要明确地调用这个方法。
toString()在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串 (通过调用这些元素的toString()方法)。当每个元素都被转换成字符串时,它就以列表的形式输出这些字符串,字符串之间用逗号分隔。返回值与没有参数的join()方法返回的字符串相同。
代码如下:
- var arr = new Array(3);
- arr[0] = "George";
- arr[1] = "John";
- arr[2] = "Thomas";
- // document.write(arr.toString());
- alert(arr.toString());//结果为返回一个拼接的字符串中间用逗号隔开 George,John,Thomas;
11、返回一个新数组,原数组不变 语法 : 数组名.slice();
slice方法用于提取原数组的一部分,返回一个新数组,原数组不变. 它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。
代码如下:
- //slice数组的方法
- var arr = [1,2,3,4,5,6,7,8];
- //alert(arr.slice(0)); //返回值为1,2,3,4,5,6,7,8
- //alert(arr.slice(1,4)); //返回值为2,3,4
- //alert(arr.slice(2,5)); //返回值为3,4,5
- //alert(arr.slice(3)); //返回值为4,5,6,7,8
- alert(arr); //返回值为1,2,3,4,5,6,7,8
当 slice为负数,则表示倒数计算的位置.
- //slice数组的方法
- var arr = [1,2,3,4,5,6,7,8,9,10,11];
- //alert(arr.slice(-3)); //返回的值为8,9,10 倒数三位数
- //alert(arr.slice(-3,-1)); //返回的值为最后倒数的三位数 的倒数第二位 9,10
- alert(arr); //返回的值为 1,2,3,4,5,6,7,8,9,10,11
JavaScript的json和Array及Array数组的使用方法的更多相关文章
- javascript获取json对象的key名称的两种方法
javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常 ...
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
- javascript中的稀疏数组(sparse array)和密集数组
学习underscore.js数组相关API的时候.遇到了sparse array这个东西,曾经没有接触过. 这里学习下什么是稀疏数组和密集数组. 什么是密集数组呢?在java和C语言中,数组是一片连 ...
- JavaScript引用类型之Array数组的排序方法
数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1.reverse() 用于反转数组项的顺序,代码如下: <sc ...
- JavaScript中的内置对象-8--1.Array(数组)-Array构造函数; 数组的栈方法; 数组的转换方法; 数组的操作方法; 删除-插入-替换数组项; ECMAScript为数组实例添加的两个位置方法;
JavaScript内置对象-1Array(数组) 学习目标 1.掌握任何创建数组 2.掌握数值元素的读和写 3.掌握数组的length属性 如何创建数组 创建数组的基本方式有两种: 1.使用Arra ...
- 转 JavaScript里的数组转化新方法Array.From
过去,我们使用各种各样的方法来将类似Array对象的东西(比如 arguments 和 NodeList) 转换成真的数值.比如下面这个: 将NodeList转换成数组 基本上,这些东西我们都可以使用 ...
- javascript内置对象一: Array数组
在JavaScript中的任何事物,字符串,数组,函数等等都是对象. 理解:浏览器自己封装好的对象,可以直接使用. push /pʊʃ/ 增加 在末尾增加 unshif ...
- JavaScript引用类型之Array数组的栈方法与队列方法
一.栈方法 ECMAScript数组也提供了一种让数组的行为类似与其他数据结构的方法.具体的来说,数组可以变现的向栈一样,栈就是一种可以限制插入和删除向的数据结构.栈是一种LIFO(Last In F ...
- javascript 学习总结(二)Array数组
1.数组常用方法 var colors = ["red", "blue", "green"]; //creates an array wit ...
随机推荐
- 正则匹配中文 UTF-8 & GBK
在php 中: //GB2312汉字字母数字下划线正则表达式 GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff).&qu ...
- AAS代码第2章
[root@node1 aas]# pwd /root/aas [root@node1 aas]# wget http://archive.apache.org/dist/spark/spark-1. ...
- 在 ASP.NET 中创建数据访问和业务逻辑层(转)
.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...
- Linux 文件的基本操作
1>.新建空白文件: touch命令-->$ touch test 2>.新建目录: mkdir命令-->$mkdir mydir 使用 -p参数:同时创建父目录-->$ ...
- CSS之立体球体
<!DOCTYPE html><html><head> <title>球体</title> <meta charset="u ...
- C#类的继承,方法的重载和覆写
在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...
- 如何通过JDBC访问数据库
Java数据库连接(JDBC)用与在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库 ...
- Learning Bayesian Network Classifiers by Maximizing Conditional Likelihood
Abstract Bayesian networks are a powerful probabilistic representation, and their use for classifica ...
- Android 完整开源应用,完整开源项目
(Antox)聊天的 (new) (OpenKeychain)OpenPGP在android上的实现 (new) (Flock)提供同步服务 (OpenFlappyBird)曾经火爆的 ...
- Spring3.0 与 MyBatis框架 整合小实例
本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...