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赋予给balert(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 7aArr.pop() //剩余6aArr.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,9alert(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,8alert(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,10alert(arr); //返回的值为 1,2,3,4,5,6,7,8,9,10,11
JavaScript的json和Array及Array数组的使用方法相关推荐
- JS Array.slice 截取数组的实现方法
这篇文章主要介绍了JS Array.slice 截取数组的实现方法,因为我们需要控制一下长度,需要的朋友可以参考下 slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 a ...
- arr取前五个对象 js_JS Array.slice 截取数组的实现方法
slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数 ...
- java截取数组_JS Array.slice 截取数组的实现方法
slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数 ...
- 【JavaScript笔记 · 基础篇(五)】Array全家桶(引用数据类型中的数组 / Array对象 / Array.prototype)
文章目录 一. 引用数据类型中的数组 1.1 概述 1.2 初始化 1.2.1 字面量 1.2.2 构造函数模式 1.3 访问 1.4 length属性 1.5 数组遍历 1.6 类数组对象 1.6. ...
- JavaScript数组内置方法-知识
/* * 数组中常用的内置方法:基于这些方法可以让我们有效的对数组进行操作 * console.dir(Array.prototype) 查看数组内置方法 ...
- 【XJB造轮子】独立手写实现JS中数组的部分方法
心态浮躁的我在自己设想的小项目写不下去的时候跑过来没事干重新弄DS玩 看了下<学习JS数据结构与算法>的第二章并写了一下这几个方法: pop,shift,unshift 1.myUnshi ...
- JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...
6.JS面向对象基础(*) 7.Array对象 7.1 练习:求一个数组中的最大值.定义成函数. 7.2 练习:将一个字符串数组输出为|分割的形式,比如"刘在石|金钟国|李光洙|HAHA|宋 ...
- javascript数组——新建数组、访问数组、遍历数组的方法、数组对象的方法、冒泡排序算法、json的正反序列化
目录 数组 通过构造函数的三种方法 字面量创建数组方式 访问数组 遍历数组的方法 遍历:遍历就是把数组中的元素从头到尾都访问一次 操作数组对象的方法 删除和添加 delete与Vue.delete区别 ...
- JavaScript常用内置对象之Array
数组 (Array) 1. 作用: Array 对象用于在单个的变量中存储多个值 2. 概念: a.下标 -- 编号,从 0 开始,到 (长度-1) 结束,索引 b.元素 -- 数组中存放数据的空间 ...
最新文章
- Docker: Failed to get D-Bus connection: No connection to service
- ArcGIS Desktop开发基础(转)
- 用csc命令行手动编译cs文件
- QTCreator2.8.0+Qt Open source 4.8.5环境配置(Win7x64)
- python staticmethod规范_Python Staticmethod可以调用另一个本地方法吗?
- python算法实验是什么_PCA 算法实验代码(python)
- 解决DELL服务器每次开机提示F1F2,需要F1才可以进系统的方法
- ssm-学子商城-项目第十三天最后一天完成项目
- can卡、usbcan、can分析仪通用测试软件LCANTest详细介绍
- java cronexpression_关于CronTrigger 的cronExpression用法
- 读书笔记(穷查理宝典)
- 工作到现在的一些感想
- 【CV】Swin Transformer:使用 Shifted Windows 的分层视觉 Transformer
- python数据分析 获取数组中非零元素的索引
- 使用Oracle数据库的一些小记录 1
- 易基因|综合DNA甲基化测序揭示前列腺癌死亡率的预后表观遗传生物标志物 | 文献速递
- 无线路由器的DNS服务器怎么设置,无线路由器dns服务器怎么设置
- MATOKU FLASH手绘一套作品
- C++ 三目运算符 ?:
- kettle连接sqlserver报错