1.什么是数组?
数组是一个线性集合,通过索引进行存取,索引可能是数字,用来计算偏移量。
1.1 js 数组与其他语言数组的区别
1.1.1 效率上不如其他语言
js本着万物皆对象的宗旨,所以数组是一种特殊的对象,对象的索引必须是字符串,所以数组的索引是字符串,其他语言是数字类型,在效率上不如其他语言。
1.1.2 js 数组可以不必为同一种数据类型
1.1.3 js 数组的长度可以超过指定的长度,超过后数组会自动扩展
2.创建新数组
2.1 创建数组有两种方法 第一种 字面量方式 var arr =[2,3,4,5]; 速度比较快。第二种 var arr = new Array(),括号内传入一个参数,表示数组长度,数组的每一个值都是undefined,输入多个参数表示数组的内容。
特别提醒: 判断一个对象是否是数组用 Array.isArray()
2.2 对数组进行操作
2.2.1 读写数组
有两种方法 ,第一种 for 循环对数组进行赋值
var nums = [];
for(var i=0;i<100;++i){
nums[i] = i+1;
}
第二种,字符串生成数组
var str = 'wo shi yi ge hao ren';
console.log(str.split( ' ')) 接收一个分隔符,用来划分数组的个数
特别提醒:在for循环里++i 和 i++没有区别
2.2.2 对数组的整体操作
第一种: 赋值
将一个数组赋值给另一个数组,数组是引用类型的,引用类型的直接赋值是浅拷贝,改变新的变量会影响上一个变量。需要进行深拷贝。深拷贝的方法有四种 :1.循环赋值 2. 扩展运算符 3.slice(0) 4.concat()
2.3 存取函数
1.查找
indexof() 用来查找目标数组是否存在目标。存在返回第一个匹配目标的索引,不存在返回-1,lastIndexOf()存在返回倒数第一个索引,不存在返回-1.
2. 数组转字符串
1.join() 可接收参数,作为数组转字符串的链接符,默认就逗号
2.toString() 只能是逗号,不接收参数,作为js默认方法,输入会进行默认调用。
3.由已知数组创建新数组
concat() 合并多个数组,创新一个新数组。可以是数组或者字符串.从左到右连接。
splice() 截取一个数组组成新数组1.第一个参数死索引的起点,第二个参数 在删除截取的时候是长度,在增加插入的时候是0,增加插入的时候有第三个参数,为要增加的值。
4.数组的方法
push() 向后增加 pop() 从后删除
unshift() 向前增加 shift() 从 前删除
返回值 插入值返回数组的长度,删除值返回的是被删除的元素。
5.数组排序
reverse() 反向
sort() 默认是以字符串的字典排序的,数值类型的排序需要传入一个比较规则的函数。如若不传,会以字符串的规则排数字。
6.迭代器
不生产新数组的方法
array.forEach(规则函数)
every() 接受一个返回布尔值的函数,全部为真才为真,返回值是一个布尔值
some() 接受一个布尔值的函数,一真为真
reduce() 接受一个函数,返回一个值,该方法从一个累加值开始,不断对累加值和数组中的后续元素执行该函数。可以用来求和 和连接字符串。
reduceRight() 从由向左。
7.生产新数组的方法
map()
flitter()类every 接受一个布尔值的函数,返回为真的集合。
2.3 二维数组和多维数组
js只支持一维数组,通过在数组里保存数组的形式创建二维或多维数组。
创建二维数组,让一维数组的每一个元素也是一个数组
网友评论