概述
- 截取指定下标的数组或者字符串
- slice();截取指定下标的数组或者字符串元素。
- 不会修改源数组或者字符串
- 语法:slice(开始下标,结束下标)
- 如果结束下标未被规定,那么会选取从开始下标到数组结尾的所有元素。
- 返回一个包含从开始到结束下标(包头不包尾)的新数组或者字符串
- 可使用负值从数组尾部选取元素
- var array5=["魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
var cutArr1=array5.slice(0,3);//表示从第一个数组元素开始"魏国"到第四个数据元素"张郃"为止
var cutArr2=array5.slice(2);//表示第三个数组元素"典韦"开始到结束
var cutArr3=array5.slice(-5);//从右往左:-7,-6,-5,-4,-3,-2,-1
// 从-5到-1截取数据
- 查找指定元素的下标
- indexOf()查找指定元素的下标,从前往后查找
- 若有重复的,则返回第一个查到的下标
- 若不存在则返回-1
- var array6=["郭嘉","魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
var seekArr1=array6.indexOf("郭嘉");//返回数组元素第一个郭嘉的下标
var seekArr2=array6.lastIndexOf("郭嘉");//返回最后一个出现郭嘉的下标
- 合并数组以及反转数组
- concat()方法用于连接两个或者多个数组
- 该方法会先创建当前数组的一个副本,不会改变原有的数组,会返回新数组
- var array6=["郭嘉","魏国","曹操","典韦","张郃","张辽","司马懿","郭嘉"];
var array7=["魏国","蜀国","吴国"];
var array8=["关羽","马超","张飞","黄忠","赵云"];
var newArr78=array7.concat(array8);//表示数组array7后面添加数组array8
var newArr678=array6.concat(array7,array8);//表示数组array6后面依次添加array7,array8 - reverse();反转数组元素的顺序
- 该方法会改变原来数组,不会创建新数组
- 返回值不是新数组而是当前数组的引用
- var array8=["关羽","马超","张飞","黄忠","赵云"];
array8.reverse();//["关羽", "马超", "张飞", "黄忠", "赵云"]
- 数组元素排序
- sort();用于对数组的元素进行排序
- 默认:按照升序序列数组项,即最小值位于最前面,最大值在后面
- 会直接修改元数组
- sort()方法会转换成字符串再比较,并从第一个字符开始比较
- var array9=[1,3,-2,0,22,-3];
var array10=['a','d','c','z','g'];
var array11=[33,1,3,92,10];
array11.sort();//[1, 10, 3, 33, 92]
array9.sort();//[-2, -3, 0, 1, 22, 3]
array10.sort();//["a", "c", "d", "g", "z"]
- 数组元素过滤
- filter() 把数组中某些元素过滤掉,然后返回剩下的元素,接收的是一个回调函数
- 数组每一项运行给定函数,返回满足过滤条件组成的新数组
- 不会改变源数组
- var arr1 = [1,2,3,4,5,6,7,8,9,10];
function abc(x){
return x>6;
};
//保留大于6的数组元素
var arr2 = arr1.filter(abc); //[7,8,9,10]
function bcd(x){
return x%2 == 1;
};
//保留数组中的奇数元素
var arr3 = arr1.filter(bcd); //[1,3,5,7,9]
- 数组元素遍历去重复
- 建立一个新数组,然后去遍历循环去重的数组,每次判断新数组不包含旧数组的值(新数组用indexOf方法检索旧数组的值返回结果等于-1)将该值加入新数组。
- var arr1 = [1,1,2,2,3,3]; //[1,2,3]
function qcf(arr){
var abc=[];
for(var i=0; i<arr.length;i++){
if(abc.indexOf(arr[i]) == -1){
abc.push(arr[i]);
};
};
return abc;
};
var arr2 = qcf(arr1);
console.log(arr2); //[1,2,3]
- 使用set方法去重复
- set数据类型:ES6提供了新的数据结构Set。
- 它类似于数组,但是成员的值都是唯一的,没有重复的值。
- 数组转set
- var arr1 = [1,1,2,2,3,3];
- var set = new Set(arr1); //[1,2,3]
- set转数组
- var arr1 = [1,1,2,2,3,3];
- var arr2 = Array.from(set);//[1,2,3]
- has()判断一个值是否存在set中,返回布尔值存在即true,否则false
- console.log(set.has(2)); //true
console.log(set.has(5)); //false
- console.log(set.has(2)); //true
- 数组并集,交集,差集
- var arr1=[1,2,3];
- var arr2=[2,3,4];
- var a = new Set(arr1);
- var b = new Set(arr2);
- 并集:a+b再把重复去掉 [1,2,3,4]
- var un = new Set([...a,...b]); //[1,2,3,4]
console.log(un);
- var un = new Set([...a,...b]); //[1,2,3,4]
- 交集:a和b共同的部分[2,3]
- var is = new Set([...a].filter(x=> b.has(x)));//[2,3]
console.log(is);
- var is = new Set([...a].filter(x=> b.has(x)));//[2,3]
- 差集:a-b [1]
- var df = new Set([...a].filter(x=> !b.has(x)));//[1]
console.log(df);
- var df = new Set([...a].filter(x=> !b.has(x)));//[1]
最后
以上就是细心酒窝为你收集整理的JavaScript基础之数组方法的全部内容,希望文章能够帮你解决JavaScript基础之数组方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复