美文网首页
JavaScript中数组的那些事

JavaScript中数组的那些事

作者: 依东望 | 来源:发表于2018-08-27 23:47 被阅读0次

    定义:

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

    数组的直接匹配;

    通过数组的直接匹配返回第三个值

    相关文章

      网友评论

          本文标题:JavaScript中数组的那些事

          本文链接:https://www.haomeiwen.com/subject/usfxwftx.html