JavaScrip基础(四):数组API
数组转字符串
1.1 string(arr): 将arr中每个元素转为字符串,用逗号分隔
固定套路:对数组拍照,用于鉴别是否数组被修改过
1.2 arr.join("连接符"):将arr中每个元素转为字符串,用自定义的连接符分隔
var chars=['H','e','l','l','o'];
console.log(chars.join(""));//Hello
console.log(chars.join("-"));//H-e-l-l-o
固定套路
- 将字符组成单词:chars.join(' ')->无缝拼接
- chars.join(' ')=="" 判断数组是空数组
- 将单词组成句子:chars.join(' ')
- 将数组转化为页面元素的内容
拼接和选取
拼接
不直接修改原数组,而返回新数组
concat() 拼接两个或更多的数组,并返回结果
var newArr=arr1.concat(值1,值2,arr2,值3,...)
将值1,值2和arr2 中每个元素以及值3都拼接到arr1的元素,之后,返回新数组
其中,arr2的元素会被先打散,再拼接
var arr1=[90,91,92];
var arr2=[80,81];
var arr4=arr1.concat(50,60,arr2);
console.log(arr1);//现有数组值不变[90, 91, 92]
console.log(arr4);//[[90, 91, 92, 50, 60, 80, 81]]
选取
不直接修改原数组,而返回新数组
slice()返回现有数组的一个子数组
var subArr=arr.slice(starti,endi+1)
选取arr中starti位置开始,到endi结束的所有,(含头不含尾)
元素组成新数组返回,原数组保持不变
var arr1=[10,20,30,40,50];
var arr2=arr1.slice(1,4); //20,30,40
var arr3=arr1.slice(2); //30,40,50
var arr4=arr1.slice(-4,-2);//20,30
console.log(arr1);//现有数组元素不变
选取简写
1.一直选取到结尾:可省略第二个参数
var arr5=arr1.slice(1);//20,30,40,50
2.如果选取的元素离结尾近,可用倒数下标
var arr6=arr1.slice(-1);//50
3.复制数组
arr.slice(0,arr.length);
可简写成:arr.slice();
3.修改数组
删除
splice直接修改原数组
arr.splice(starti,n);
删除arr中starti位置开始的n个元素(不考虑含头不含尾)
var arr1=[10,20,30,40,50];
var arr4=arr1.splice(2,1);
console.log(arr4);// 30, 保存被删除的元素组成的临时数组
console.log(arr1);// 10,20,40,50 修改后的数组
插入
arr.splice(starti,0,值1,值2...)
在arr中starti位置,插入新值1,值2....原starti位置的值,以及其之后的值向后顺移。
var arr1=[10,20,30,40,50];
arr1.splice(2,0,21,22,23);
console.log(arr1); // 10, 20, 21, 22, 23, 30, 40, 50
替换
删除旧的,插入新的
arr.splice(starti,n,值1,值2...)
先删除arr中starti位置的n个值,再在starti位置插入新值
注意:删除的元素个数和插入的新元素个数不必一致
var arr1=[10,20,30,40,50];
arr1.splice(2,1,21,22,23);
console.log(arr1);// 10, 20, 21, 22, 23, 40, 50
颠倒数组
reverse()颠倒数组中元素的顺序
arr.reverse()
注意:仅负责原样颠倒数组,不负责排序
var arr1=[10,20,30,40,50];
arr1.reverse();
console.log(arr1);//50, 40, 30, 20, 10
排序
将元素按从小到大的顺序重新排列
arr.sort(): 默认将所有元素转为字符串再排列
注意:只能排列字符串类型的元素
var arr1=['10','Hello',50,20,10,30,40];
arr1.sort();
console.log(arr1);//['10', 10, 20, 30, 40, 50, 'Hello']
本文来自博客园,作者:是小鱼呀,转载请注明原文链接:https://www.cnblogs.com/sophia12138/p/18126141