【JS中的数组】

1、数组的基本概念?
数组是在内存空间中连续存储的一组有序数据的集合
元素在数组中的顺序,称为下标。可以使用下标访问数组的每个元素
2、如何声明一个数组
① 使用字面量声明:var arr=[];
在JS中,同一数组可以存储各种数据类型。
例如:var arr=[1,"2",true,4,{}];
② 使用new关键字明,var arr= new Array(参数);
>>>参数可以是:
a.省略,表示创建一个空数组
b.参数为一个整数,表示声明一个length为指定长度的数组。
但是这个length可以随时可变,可追加。
c.参数为,分隔的多个数值表示数组的多个值。
new array(1,2,3)==[1,2,3]
3、数组中元素的读写/增删
① 读写:通过下标访问元素。下标从0开始。arr[1]="haha";
② 增删:
a.使用delete,关键字删除数组的某一个值,删除之后,数组的长度不变,对应的位置变为Undefined
eg:delete arr[1];
b.arr.pop()删除数组的最后一个值。相当于arr.length -= 1;
c.arr.shift();删除数组的第一个值;
d.arr.unshift(值):在数组的第0个位置新增一个值;
e.arr.push():在数组的最后一个位置新增一个值
f.直接访问数组没达到的下标,可以动态追加。
arr[100]=1;中间如果有空余下标,将存入Undefined.
4、数组中的其他方法
① join("分隔符号"):将数组用指定分隔符链接为字符串。当参数为空时,默认用逗号分隔;
② concat():【原数组不会被改变】,将数组将两个或多个数组的值链接为新数组;
concat链接时,如果有二维数组则之多能拆一层中括号
[1,2].concat([3,4],[5,6])->[1,2,3,4,5,6]
[1,2].concat([3,4,[5,6]])->[1,2,3,4,[5,6]]
③ push:数组最后增加一个,unshift:数组开头增加一个 --返回新数组的长度
pop():数组最后删除一个, shift():数组开头删除一个 --返回被删除的值
【上述方法均会改变原数组】
④ reverse():【原数组被改变】将数组翻转,倒序输出
⑤ slice(begin,end):【原数组不会被改变】,截取数组中的某一部分,并 返回截取的新数组
>>>传入一个参数,表示开始区间,默认将截到数组最后;
>>>传入两个参数,表示开始和结束的下标,左闭右开区间(包含begin,不含end)
>>>两个参数可以为负数,表示从右边开始数,最后一个值为-1
⑥ sort():【原数组被改变】,将数组进行升序排列
>>>默认情况下,会按照每个元素首字母的Ascii码值进行排列;
[3,1,5,12].sort()->[1,12,3,5]
>>>可以传入一个比较函数,手动指定排序的函数算法;
函数将默认接收两个值a,b 如果函数返回值>0,则证明a>b;
arr.sort(fucntion(a,b){
return a-b;//升序排列
return b-a;//降序排列
})
⑦ indexOf(value,index):返回数组中第一个value值所在的下标,如果没有找到,返回-1
lastIndexOf(value,index):返回数组中最后一个value所在的下标,如果没有找到,返回-1
>>>如果没有指定index,则表示全数组查找value
>>>如果指定了index,则表示从index开始,往后查找value
⑧ arr.forEach():专门用于循环遍历数组,接收一个回调函数,回调函数接收两个参数,第一个参数
为数组的每一项的值,第二个参数为下标(IE8之前不支持此函数)
arr.forEach(function(item,index){
console.log(item);
})
⑨ map():数组映射。使用方式与forEach相同,不同的是map可以有return返回值,表示将原数组的
每个值进行操作后返回给一个新数组(IE8之前不支持此函数)
arr.map(function(item,index){
console.log(item);
return item-1;
})
5、二维数组与稀疏数组(了解)
① 二维数组: 数组中的值,依然是一个数组形式。
eg:arr=[[1,2,3][4,5,6]];//相当于两行三列
读取二维数组:arr[行号][列号]
② 稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)
6、基本数据类型和引用数据类型
① 基本数据类型:赋值时,是将原变量中的值,赋值给另一个变量。赋值完成后,两个变量相互独立,
修改其中一个的值,另一个不会变化。
② 引用数据类型:赋值时,时将原变量在内存中的地址,赋值给另一个变量。赋值完成后,两个变量中存储的
是同一个内存地址,访问的是同一份数据,其中一个改变另一个也会发生变化。
③ 数值型,字符串,布尔型等变量属于基本数据类型,
而数组,对象属于引用数据类型;

HTML-JS 数组 内置对象的更多相关文章

  1. js arguments 内置对象

    1.arguments是js的内置对象. 2.在不确定对象是可以用来重载函数. 3.用法如下: function goTo() { var i=arguments.length; alert(i); ...

  2. js单体内置对象

    js单体内置对象:js的内置对象,是ECMAScritp提供的.不依赖于宿主环境的对象,我的理解就是在我们开发之前js里面就已经存在的对象.单体内置对象就是是不需要通过new来实例化的,例如我们的st ...

  3. js常用内置对象、Dom对象、BOM对象

    11.html元素事件属性中,如onclick="",双引号里可以是方法条用,可以是js代码(无需加<script>标签) 12.JavaScript内置 对象.属性和 ...

  4. JS的内置对象以及JQuery中的部分内容

     [js中的数组]              1  数组的概念:可以再内存中连续存储的多个有序元素的结构                元素的顺序:称为下标,通过下标查找对应元素.           ...

  5. js常用内置对象及方法

    在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( )    数组开 ...

  6. js的内置对象

    转载: https://www.cnblogs.com/liuluteresa/p/6413988.html   在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变 ...

  7. JS常见内置对象和方法

    JS中常用的内置对象:Array对象.Date对象.正则表达式对象.string对象.Global对象  Array对象中常用方法: concat() 表示把几个数组合并成一个数组join()   设 ...

  8. JS基础-内置对象【字符串+Date+Math】

    JS内置对象[字符串] // charAt() 返回字符 // charCodeAt() 返回字符的unicode编码 var str="hello world"; console ...

  9. JS 单体内置对象

    内置对象: 由ECMAScript提供的.不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 不必由开发人员显式地实例化内置对象 比如: Object Array Str ...

随机推荐

  1. python ctypes 探究 ---- python 与 c 的交互

    近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块.同时,虽然网上有这方面的内容,但是感觉还是没说清楚.这里记录 ...

  2. [20180627]truncate table的另类恢复.txt

    [20180627]truncate table的另类恢复.txt --//前几天看链接http://www.xifenfei.com/2018/06/truncate-table-recovery. ...

  3. python第六十一天,第六十二天 redis

    redis 缓存系统 redis是业界主流的key-value nosql 数据库之一.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).se ...

  4. Visual Stuido插件大全

    JS Enhancements 使用JS能像C#代码一样折叠成块 Code Compare Code Compare is a powerful file and folder comparison ...

  5. sftp 建立用户

    1.创建sftp组:#groupadd sftp 2.创建测试账户:#useradd -g sftp -s /bin/false testuser 修改密码:# passwd sftp 3.修改测试账 ...

  6. 校园网下对VMware网络的配置

    1.参考:https://jingyan.baidu.com/article/8275fc8675c22646a03cf6b8.html 2.因为校园网的每一次连接都是自动获得IP地址的,所以虚拟机要 ...

  7. Vs .Net Framework 灵活配置

    背景:我们开发和部署项目时都是通过注释某些配置项 比如: 在调试时就注释掉生产的配置项,在生产时又要改回来,只有一个还好,如果多的话就会非常容易出错. 问题1:在发布时容易出错,需要控制发布时根据配置 ...

  8. Alpha冲刺! Day9 - 砍柴

    Alpha冲刺! Day9 - 砍柴 今日已完成 晨瑶:继续补充gitkraken教程. 昭锡:实现主页基本布局. 永盛:进一步了解了框架,为框架生成的模型填充了假数据到数据库. 立强:文章模块基本实 ...

  9. 【洛谷】【动态规划/01背包】P2925 [USACO08DEC]干草出售Hay For Sale

    [题目描述:] 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包干草,每一包都有它 ...

  10. Thinkphp5.0整合个推例子

    最近做一个后台发送消息推送到app(android和ios)的功能,该功能采用的是个推接口,基于php的,我用TP5来实现这个推送流程.先看官方demo吧.可以先参考官方给到的例子来看http://d ...