JavaScript中数组的那些事

定义:

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();

数组的直接匹配;

通过数组的直接匹配返回第三个值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容