unshift、push、shift、pop、splice、sort、reverse、concat、join、split
一.通过索引下标来操作数组
1,通过索引下标,调用数组中,指定单元的数据
var arr = ['北京','上海','广州','重庆','天津'];
arr[0] ---> 调用索引下标是 0 ,实际是第一个单元的数据 北京
2,通过索引下标,来修改数组中,存储的单元的数据
对已存在的索引下标,进行赋值,进行的是重复赋值,会覆盖之前存储的数据
arr[0] = ‘武汉’;
console.log(arr);
3,通过索引下标,来新增数组的单元
对不存在的索引下标,进行赋值,是新增数组单元的操作
连续索引
arr[5] = '郑州';
间隔索引
arr[100] = '瞎写的';
console.log(arr);
console.log(arr[50]); → undefined
4,通过索引下标,来删除数组的单元
定义数组的length长度属性,通过定义数组的单元个数,来删除数组的单元
只能是从数组的结尾处开始删除单元,不能从数组的起始开始删除单元
一般不使用,除非是一定要限制数组长度
arr.length = 100;
arr.length = 6;
console.log(arr);
二.向数组中新增或者删除单元及其返回值
unshift() 起始新增,可以是一个或者多个
push() 结束新增,可以是一个或者多个
shift() 起始删除,只能是一个
pop() 结束删除,只能是一个
总结: 新增可以是一个或者多个
删除一次只能一个
1.新增单元 --- 数组的起始 数组的结束
数组变量.unshift
(新增的数据) 在数组的起始位置新增单元
数组变量.unshift(数据1,数据2,数据3…) 可以新增多个单元,之间使用逗号间隔
当写多个数组变量新增时,书写的 从 下到上 在数组中的排序是 从左到右
新增的单元可以是任意JavaScript支持的数据类型
数组变量.push
(新增的数据) 在数组的结束位置新增单元
数组变量.push(数据1,数据2,数据3…) 可以新增多个单元,之间使用逗号间隔
当写多个数组变量新增时,书写的 从 下到上 在数组中的排序是 从右到左
新增的单元可以是任意JavaScript支持的数据类型
push()是最常用的数组方法,用于向数组中添加内容
var arr = ['北京','上海'];
arr.unshift('武汉');
arr.unshift('武汉加油','武汉棒棒哒');
arr.unshift([1,2,3,4,5]);
arr.unshift(function fun(){console.log(123)});
arr.unshift( {name:'张三'} );
arr.push('武汉');
arr.push('武汉加油','武汉棒棒哒');
arr.push([1,2,3,4,5]);
arr.push(function fun(){console.log(123)});
arr.push( {name:'张三'} );
2.从数组中删除单元
数组.shift
(什么都不要写,写了也没用) 只能删除起始的第一个单元
数组.pop
(什么都不要写,写了也没用) 只能删除结束的最后一个单元
arr.shift();
arr.pop();
console.log(arr);
3.数组操作方法(新增或删除单元)的返回值
unshift() push() shift() pop()
功能是操作数组, 返回值是 定义在这写函数内部的return
unshift() push() 新增单元操作,返回值都是新增单元之后,数组新的长度,也就是length属性值
shift() pop() 删除单元操作,返回值都是删除单元存储的数据信息
删除单元,也称为 抛出 释放 消除
var arr = [1,2,3,4,5];
定义一个变量,来存储返回值,当然也可以直接输出操作
操作之后,新增单元执行,数组新的长度
var res1 = arr.unshift('北京');
var res2 = arr.push('北京');
console.log(arr);
console.log(res1); → 6
console.log(res2); → 7
删除操作shift 、pop,返回值是删除单元的数据信息
var res3 = arr.shift();
console.log(res3); → 北京
三.截取数组的指定单元 / 删除数组的指定单元及其返回值
var arr = ['北京','上海','广州','重庆','天津'];
删除广州重庆
方法1
,从结束位置删除 3个单元
之后再把 天津 添加上
方法2
, 数组.splice
()
参数1: 删除起始单元的位置—索引下标
参数2: 从起始单元开始,删除单元个数—删除几个单元
参数3: 在删除的位置上,插入的新的数据
替换插入的数据,可以不写,也可以是一个,也可以是多个,多个单元之间使用逗号间隔
其内容可以是任意JavaScript支持的数据类型
从索引下标是2,也就是第三个单元开始,删除2个单元
操作结果返回值是 删除单元组成的存储的数据信息
var res = arr.splice(2,2);
console.log(arr);
console.log(res);
如果只写一个参数,是从删除位置开始,删除之后所有的单元,包括起始位置单元
arr.splice(2);
如果不写参数,没有效果的
arr.splice();
写三个单元执行效果类似于替换操作
从索引下标是2,实际是第三个单元开始,删除2个单元(包裹索引2的单元)
然后替换插入数据 武汉 , 加油
var res2 = arr.splice(2,2,'武汉','加油');
console.log(arr);
console.log(res2);
四.数组的排序方法
将数组中的数据按照数值大小来进行排序
数组.sort
() 默认按照首位数值排序,不是数值的实际大小
数值.sort( function(a,b){return a-b} ) 按照数值的实际大小排序 — 从小到大
数值.sort( function(a,b){return b-a} ) 按照数值的实际大小排序 — 从大到小
var arr = [3,21,3215432,321321,32,43,5,34,43,23,32543,1234,45,321,14,234,4];
数组的排序方法,默认按照首位数值排序,不是数值的实际大小
arr.sort();
从小到大的固定语法形式
arr.sort( function(a,b){return a-b} )
从大到小的固定语法形式
arr.sort( function(a,b){return b-a} )
console.log(arr);
五.数组的反转
数组.reverse
();
数组的反转 会改变原始数组的内容
比如在新闻信息展示中,将数据库中,数组最后的最新的消息,反转到最上方先显示
var arr = ['北京','上海','广州','重庆','天津'];
arr.reverse();
console.log(arr); → 原数组倒着写
六.数组的拼接
数组1.concat
(数组2)
将两个数组,拼接为一个数组
将来两个数组的数据内容进行拼接
var arr1 = [1,2,3,4,5];
var arr2 = ['北京','上海','广州','重庆','天津'];
var arr3 = arr1.concat(arr2);
console.log(arr3);
七.数组和字符串的转化
数组.join
() 不会改变原始数组的内容
返回值是字符串类型,内容是数组中每个单元存储的数据信息,默认使用逗号间隔
遵守其他数据类型转化为字符串类型的自动转化原则
var arr = ['北京','上海','广州','重庆','天津',true,false,100,[1,2,3,4],{name:'张三'},function fun(){}];
默认逗号间隔
var res1 = arr.join();
设定间隔符号
var res2 = arr.join('-');
没有间隔符号,设定空字符串作为间隔
var res3 = arr.join('');
console.log(arr);
console.log(res1);
console.log(res2);
console.log(res3);
八.字符串转化为数组
将字符串,切割,存储为数组的形式
字符串.split
不会改变原始字符串
返回值是: 按照字符串,转化为的数组
语法1:不定义参数,将字符串整个转化为数组的一个单元
语法2:定义参数为’’ 空字符串 将每个字符,转化为一个单元
语法3:可以按照特定的间隔符号来分割字符串
存储单元数据内容中,没有间隔符号
语法4:设定第二个参数,是设定数组的单元个数,也就是length长度
一般是不写的
按照间隔符号 - 减号来分割字符串,存储成数组形式
并且设定数组为3个单元成都
var str1 = '北京-上海-广州-天津-重庆';
var res4 = str1.split('-' , 3);
console.log(res4);
复习
数组的操作方法
1,索引下标操作
数组[索引下标] 获取索引下标中存储的数据
数组[索引下标] = 数值;
如果索引下标已存在,是赋值修改操作
如果索引下标不存在,是新增单元操作
2,length属性
数组的长度,也就是单元个数
数组.length 获取数组中长度的属性
数组.length = 数值 设定数组长度,可以删除多余的单元
数组.length -1 是最后一个单元的索引下标
3,数组的常用操作方法
使用的是JavaScript给我们封装好的函数
(1) 新增和删除
unshift 首位新增
push 末位新增
新增可以是一个或者多个单元,返回值是操作之后,数组新的长度
shift 首位删除
pop 末位删除
删除一次执行删除一个单元,返回值是删除单元,存储的数据
(2) 截取/替换
数组.splice()
语法1 : 不定义参数,无效果
语法2 : 定义一个参数
从定义的索引下标开始(包括),截取之后所有的单元
语法3 : 定义两个参数
从定义的索引下标开始(包括),截取设定个数的单元
语法4 : 定义三个参数
从定义的索引下标开始(包括),截取设定个数的单元
使用定义的数据替换
定义的数据,可以是一个或者多个,支持所有JavaScript数据类型
返回值 : 是截取的单元内容
(3) 排序
数组.sort() 默认按照首字符串大小排序
数组.sort(function(a,b){return a-b}) 按照数值,从小到大排列
数组.sort(function(a,b){return b-a}) 按照数值,从大到小排列
(4) 其他方法
数组.reverse() 倒序,影响原来的数组
数组.join() 数组转化字符串,不会影响原来数组
字符串.split() 字符串转数组,不会影响原来数组
数组.concat() 数组拼接