数组的使用——Array、length、join、sort、push、concat、es6合并数组、splice增删改

177 阅读3分钟

【数组】

Array:用于在单独的变量名中存储一系列的值 

具有相同数据类型的一个或多个值的集合

 字面量的方式创建数组

let arr = ['张三','李四','王五'];

let num = [11,22,33,44]

console.log(arr); 

数组的下标从0开始

构造函数的方式创建数组

new Array(size);

表示数组中可存放的元素总数

规定了总数 但是添加一个数 总数也会增加

 new Array()实例化一个数组对象 

 let arr = new Array(3)

arr = [1,2,3,4] 

【声明时赋值 】

let arr = new Array(1,2,3,4,5,6)

【分别赋值 】

let arr = new Array(3);

arr[0] = 'zhangsan';

arr[1] = 'lisi';

arr[2] = 'wangwu' 

通过数组的名称和下标直接访问数组的元素 

 console.log(arr[1]); 

 for(var i in arr){

console.log(arr[i]);

【属性 length 设置或返回数组中元素的数目】

let arr = [1,2,3,4,5]

console.log(arr.length)【表示数组arr的全长】

【join( ) 把数组的所有元素放入一个字符串,通过一个分隔符进行分隔把数组转成字符串】

let newstr = arr.join();

 join()里面没有传任何参数 默认以逗号连接

join('') 数字中间没有任何字符拼接

let newstr = arr.join('+');

 【sort() 对数组排序】

隐式数据类型转换 会字符串类型的转成数字类型进行排序

sort方法 会把老数组和新产生的数组都进行排序

sort()对应多位数排序 会出现问题

sort 给我们提供的解决方法

 arr.sort(function(a,b){

从小到大的顺序

 return a-b;

从大到小的顺序 

 return b-a;

 【document.write】有个缺陷,用按钮点击的时候

会把整个页面进行重新绘制,导致页面原来的内容丢失

【concat() 合并两个数组】

对原来的两个数组 没有任何改变,会生成一个拼接好的新数组

let arr1 = [1,2,3];

let arr2 = [4,5,6];

let arr3 = [7,8,9]

 【拼接多个数组】 

 let newarr = arr1.concat(arr2).concat(arr3);

 console.log('arr1',arr1);

 console.log('arr2',arr2);

 console.log('newarr',newarr);

【es6合并数组】 要是用扩展运算符 ... 

等同于 [1,2,3] 把arr1的括号去掉,

把里面的内容拿出来了

let newarr = [...arr1];

let newarr = [...arr1,...arr2,...arr3];

console.log(newarr);

【数组中的splice方法 可以对数组进行增删改】

splice()里面有三个参数,

第一个参数表示 你要操作的数组元素的索引

第二个参数表示 你要从你选择的索引开始要删除的个数

第三个参数表示 你要添加的数组元素

例如:

 let arr = ['张三','李四','王五'];

 删除李四 

 arr.splice(1,1) 

 把王五修改成丽丽 

 arr.splice(2,1,'丽丽') 

 添加 你想在哪里添加就在哪里添加

 把倩倩放在数组索引为2的位置 因为第二个参数是0 所以王五不会被删除 

 arr.splice(2,0,'倩倩') 

 使用splice在数组的末尾添加 

 arr.splice(3,0,'倩倩')

 在任意数组末尾的位置进行添加 

 arr.splice(arr.length,0,'倩倩')

 console.log(arr); 

push表示在数组的末尾添加一个元素

pop 删除数组的最后一个元素

arr.pop();

console.log(arr); 

shift 删除数组的最前面的一个元素

arr.shift();

console.log(arr);

unshift 在数组的最前面添加一个数组 

arr.unshift('丽丽')

console.log(arr);