定义:
Array 对象用于在单个的变量中存储多个值;
创建方式:
var arr=new Array();
var arr=new Array(size);
var arr=new Array(element0,element1, ...,elementn);
参数:
size为数组元素个数,通过该数组的length属性可以访问;
对象属性(attribute)
constructor:返回创建该对象的数组函数的引用。
length:设置或返回数组中元素的项目;
prototype:利用该属性可以增加属性和方法;
function employee(name,job,born){
this.name = name;
this.job = job;
this.born = born;
}
var bill = new employee("Bill Gates","Engineer",1985);
employee.prototype.salary = null;
bill.salary = 20000;
console.log(bill.salary);
对象方法:
concat(),连接两个或更多的数组,并返回结果;
join(),把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔;
pop(),删除并返回数组的一个元素;
push(),向数组的末尾添加一个或更多元素,并返回新的长度;
reverse(),颠倒数组中元素的顺序;
shift(),删除或返回数组的一个元素;
slice(),从某个已有的数组返回选定的元素;
sort(),对数组的元素进行排序;
splice(),从某个已有数组返回选定的元素;
toSource(),返回该对象的源代码;
toString(),把数组转换为字符串,并返回结果;
toLocalString(),把数组的开头添加一个或更多的元素,并返回新的长度;
unshift(),向数组的开头添加一个或更多元素,并返回新的长度;
valueof(),返回数组对象的原始值;
数组对象
作用:使用单独的变量名来存储一系列的值。
json对象:
从结构上看,所有的数据最终都可以分成三种类型:
第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。
第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。
第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它的规则非常简单并且是有趣的:
1) 并列的数据之间用逗号(“,”)分隔。
2) 映射用冒号(“:”)表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号(“{}”)表示。
按照这个规则可以作以下理解:
1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的;
2.无论是数组还是对象,之间的元素都用“,”隔开;
3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;
4.对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。
事例:
1.
var china={
beijing:{name:"北京",area:"16000",haidian:{name:"海淀区"}
},
shanghai:{name:"上海",area:"10000",minhang:{name:"闵行区"}
}
};
console.log(china.beijing.haidian.name);
console.log(china.shanghai.minhang.name);
2.
var ourcountry=[
["北京市"],
["上海市"],
["合肥市","芜湖市","蚌埠市"]
];
console.log(ourcountry[2][1]);
数组的一些算法:
1.去重
(1)方法一
step1.构建一个新的数组存放结果
step2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比
step3.若结果数组中没有该元素,则存到结果数组中
方法一(2)方法二(会改变原数组的顺序,所以不能通用)
step1.先将原数组进行排序;
step2.检查原数组中的第 i 个元素与结果数组中的最后一个元素是否相同,由于经过排序,因此,重复元素会在相邻位置;
step3.如果不相同,则将该元素存入结果数组中
方法二(3)方法三
step1.创建一个新的数组存放结果;
step2.创建一个空对象;
step3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果,同时这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。
方法三(4)方法四
step1:利用下标查询
step2:通过for循环遍历
2.排序
方法一:
3.数组查找,并返回对应的index
find();
数组的直接匹配;
通过数组的直接匹配返回第三个值
网友评论