JS中数组被觉得是一种对象,慢慢的,怎么忽然感觉,JS中仅仅要能够独立出来的概念怎么都能够当成对象来解释呢?有点儿怀疑。继续学吧。先来总结一下JS中数组是怎样详细使用的。

一、创建

数组的创建在JS中和Object基本上是一样的。他能够通过newkeyword来声明,也能够通过字面量的方法来创建。JS中数组创建仅仅支持一维数组。

1、new

var box=new Array();//new keyword可省略,内部可对数组进行初始化,或者声明元素的个数,这点其他语言同样

2、字面量

var box=[]; //相同也能够进行初始化

3、注意:1、默认数组中每一个元素用‘,’分开,能够用Join()方法是用不同的分隔符对数组元素进行切割,比如:Join('|')

2、JS中数组元素能够为随意类型,甚至能够为数组。创建一个复杂类型的数组:

var box = [ {                            //第一个元素为包括name和age属性的一个对象
name: 'wyy',
age:22
},
'计算机编程',
[1, 2, 45, 6,new Object()], //字面量方法创建一个数组,内包括一个对象
25 + 34,
new Array(6,7,8) //这里为一个数组
]

二、元素赋值和调用

1、赋值

在为数组元素进行赋值时,能够直接初始化为各个元素进行赋值,但这样的方式不够灵活,假设我们想动态为数组加入元素时,这个时候须要的就是在外部直接为数组中的元素进行赋值。能够利用数组中各个元素的name为其赋值,能够利用元素下标进行赋值。

var  box=[];
box.name='wyy';
box.age=22;
alert(box['name']); //这里alert(box)直接弹出数组box的话不支持。会弹出空

或者採用数组下标的方式

var  box=[];
box[0]='wyy';
box[1]=22;
alert(box); //利用下标方式能够弹出box中的元素内容

鉴于上述两种方式的差异所以,通常赋值时,我们採用索引下标进行赋值。那么依据赋值的方式,数组在调用的时候原理也是一样的。通过元素名称和索引下标来进行调用。同一时候,这里能够用length属性来获得数组元素的个数和数组中最后一个元素的值。

三、对象和操作方法

对象方法

1、栈

push:在数组末尾加入一个元素 语法:box.push('123') 注意的是假设是alert(box.push('123'))会返回最新数组的长度

pop:移除数组末尾元素:语法 alert(box.pop())//返回移除元素的值,这里和push有差别

2、队列

push:同栈中的push方法

shift:移除最先进去的元素 语法:alert(box.shift())//打印出移除元素

unshift:为数组前端加入一个元素,并返回新数组的长度。box.unshift('123')//存在不兼容现象

3、排序

reverse:返回一个逆序排列的数组,原数组也被逆序了,说明操作的是数组的引用

sort:从小到大排序,这个函数在使用前须要对其排序规则进行声明。可正负颠倒。

操作方法:

1、concat:基于原来的数组再追加一个新的数组

2、slice()和spice()这两个方法用途非常广,參数不定,规则也不定,使用时,须要细致区分。

slice主要用于取值,但不影响原来数组的值

spice主要用于删除数组中指定的元素。比如:Box.splice(1,3)//从第一个元素開始,取3个元素,而且将原数组中这些元素删掉。同一时候也能够用来插入元素,比如:

Box.splice(1,0,'wlj','dsf')//在第一个元素后插入后面的元素

var box1= box.splice(1,0,'hello'); //这里第二个參数为0,所以没有要删除的位置,那么含义转变成在第一个位置后面插入一个元素‘hello’。

小结:这一部分的知识比較碎,没有太多原理上的知识,我们必须将学过的知识进行知网,给它一条线来串起来,就像一个固定的模式一样能够从创建使用等方面将它们联系起来,多多回想,通过样例来加深理解。

JS基础——数组总结的更多相关文章

  1. JS基础-数组的常用方法-冒泡排序

    1.数组  1.关联数组    以数字作为元素下标的数组,就是索引数组.    以字符串作为元素下标的数组,就是关联数组.  2.js的关联数组    ex:在php中       $array=[& ...

  2. js基础-数组及数据类型

    数组也是引用类型 构造函数创建数组 Object 构造函数类型(所有类型基类)   Array 构造函数类型 求幂运算符 **   2**32-1 数组容量最大 arry.length 如果减小len ...

  3. JS基础——数组API之数组操作(filter、map、some、every、sort)

    var arr = [1,2,3,4];   forEach arr.forEach((item,index,arr) => { console.log(item) //结果为1,2,3,4 } ...

  4. js基础---数组方法

    数组数据的排序及去重 sort无形参的排序方式 arr1=[2,12,3,15]; var a=arr1.sort();console.log(arr1);console.log(a);//排序会改变 ...

  5. js基础——数组的概念及其方法

    数组: 概念:是一种特殊的对象. 与普通对象的区别:a.普通对象使用字符串作为属性名,而数组使用数字作为索引来操作元素: b.数组的存储性能比普通对象好 数组的标志:[ ] 数组的索引:是从0开始的整 ...

  6. js基础----数组

    1.数组如何定义 //第一种定义方法 var arr=[1,2,3,4]; //第二种定义方法 var arr=new Array(1,2,3,4); 两者没有任何区别,[]的性能可能略高,因为代码短 ...

  7. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  8. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  9. js基础练习二之简易日历

    今天学到了js基础教程3,昨天的课后练习还没来的及做,这个是类似简易日历的小案例,视频还没听完,今晚继续...... 先看效果图: 其实做过前面的Tab选项卡,这个就很好理解了,通过鼠标放在不同月份月 ...

随机推荐

  1. EHCache的使用

    在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验.笔者使用过多种基于Java的开源Cache组件,其中包括 ...

  2. CenOS下安装jdk

    1. 安装JDK1.7.0 下载完成后在取得root权限后执行: [root@sea sea]# sudo rpm -ivh /目录/jdk-7-linux-x64.rpm 执行结果: Prepari ...

  3. git 常用命令及问题解决(转)

    git init 产生的目录解释error: src refspec master does not match any.引起该错误的原因是,目录中没有文件,空目录是不能提交上去的error: ins ...

  4. 应对黑客攻击SQL SERVER数据库中的一个案例

    最近发现挂在网上server不知怎的,重新启动,那server现在主要是开始IIS服务,SQL SERVER 服务. 远程登录.发现系统响应十分缓慢.一个明显的停滞感,打开任务管理器,CPU在基本用法 ...

  5. Codeforces 549H. Degenerate Matrix 二分

    二分绝对值,推断是否存在对应的矩阵 H. Degenerate Matrix time limit per test 1 second memory limit per test 256 megaby ...

  6. Oracle 11g 的PL/SQL函数结果缓存

    模拟Oracle性能诊断艺术做了两个试验样品.书上说的不承担RELIES_ON.果缓存的失效操作(result_cache RELIES_ON(test1,test2)).试验证明不正确,函数f1() ...

  7. cocos2dx 3.0 学习笔记 引用cocostudio库 的环境配置

    cocostudio创建UI并应用时须要引用cocostudio库,须要额外的环境配置: 之前已经搭配好了基础的开发环境,包含 1) JDK 2) Python 2.7 3) ant 4) visua ...

  8. poj 1466 Girls and Boys (最大独立集)

    链接:poj 1466 题意:有n个学生,每一个学生都和一些人有关系,如今要你找出最大的人数.使得这些人之间没关系 思路:求最大独立集,最大独立集=点数-最大匹配数 分析:建图时应该是一边是男生的点, ...

  9. 【网络流量最大流量】poj3281Dining

    /* EK算法版本号,哦,慢.....见下文dinic版本号 ----------------------------------------- 最大的问题是网络流量问题 -------------- ...

  10. JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms ...