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

固定套路

  1. 将字符组成单词:chars.join(' ')->无缝拼接
  2. chars.join(' ')=="" 判断数组是空数组
  3. 将单词组成句子:chars.join(' ')
  4. 将数组转化为页面元素的内容

拼接和选取

拼接

不直接修改原数组,而返回新数组
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']
posted @ 2024-04-10 15:31  是小鱼呀  阅读(16)  评论(0编辑  收藏  举报