API:应用程序接口,数组API即提供给我们的功能,根据要求可以使用
1.Array.isArray()
判断是不是数组(HTML5新增)返回值为布尔类型值返回类型:Boolean
布尔类型值=Array.isArray(变量)
var a=[1,2,3,4,5];
var b=12345;
console.log(Array.isArray(a));
console.log(Array.isArray(b));
2.join(变量)
用字符把数组每项连起来变成字符串 返回更改完成的字符串
字符串=数组.join(变量)
var arr=["⚆_⚆","⚆_⚆","⚆_⚆"]
console.log(arr.join("つ♡⊂"));
如果没有传变量,会用逗号(,)将数组内容分隔开
console.log(arr.join());
如果我们想要得到的字符串没有间隙 那么我们传入的变量就为空字符串
console.log(arr.join(""));
3.push(元素)
在数组的最后面插入项,返回数组的长度
数组被改后的长度=数组.push(元素)
var arr=['周杰伦','蔡依林','孙燕姿']
console.log(arr.push('哎呦你干嘛'));
console.log(arr);
我们先打印的是返回值为数组完成修改后的数组长度,后面打印修改完的数组
4.unshift(元素)
unshift是为数组最前面插入项,返回数组的长度
数组被改后的长度=数组.unshift(元素)
5.pop()
pop是取出数组的最后一项,返回数组的最后一项(即取出的项)
被删除的元素=数组.pop()
var arr=['慧慧','海胆','电钻慧慧zerzer']
console.log(arr.pop());
console.log(arr);
6.shift()
shift取出数组第一个元素,返回第一项,与pop类似
被删除的元素=数组.shift()
7.reverse()
reverse的作用是翻转数组 返回翻转后的数组
翻转后的数组=数组.reverse()
var arr=[1,2,3,4,5]
console.log(arr);
console.log(arr.reverse());
console.log(arr);
8.sort(参数)
sort为数组排序,返回排序后的数组,如何排序看参数如何
数组.sort(function(a,b){
return a-b;
})
var arr=[1,1001,200,400,0.5]
console.log(arr);
console.log(arr.sort(function(a,b){
return a-b
}));
1>.如果sort没有传入参数,则会按照数组元素的首字符对应的Unicode编码值从小到大排列数组元素
2>.参数:必须为函数 ,函数中带有两个参数,代表数组中的前后元素。
return a-b为从小到大排序,return b-a为从大到小排序
9.concat(参数)
把参数拼接到当前数组
新数组=数组1.concat(数组2) 不修改原数组,生成新的数组
var arr1=["蔡徐坤","陈立农","范丞丞"]
var arr2=["喜羊羊","美羊羊","沸羊羊"]
var arr3=arr1.concat(arr2)
console.log(arr3);
10.slice(参数,参数)
从当前位置截取新的数组,不影响原来的数组
新数组=数组1.slice(索引1,索引2)
var arr1=["ez","不收徒","转人工","扣1送地狱火","叫你家大人来","撒米让鸡来","****","触摸板玩的","e3局送四千七","没开显示器"]
var arr2=arr1.slice(1,4)
console.log(arr1)
console.log(arr2);
1>.参数1从0开始,参数2从1开始
2>.包左不包右,得到的数组有索引1的元素,不包含索引2的元素
3>.如果起始索引大于结束索引,得到空数组
4>.如果只传一个索引参数,得到的数组会从该索引的元素截取直到最后一个元素
11.splice(参数,参数)
删除或替换数组的某些项目 会修改原数组
新数组=数组1.splice(起始索引,个数,替换内容)
我们只传两个参数时(起始索引,个数) 与slice都有截取数组的效果
splice | slice |
第二个索引为截取数组长度 | 第二个索引为截取数组的终止索引 |
改变原数组 | 不会改变原数组,截取的为新数组 |
var arr1=["蝴蝶刀","爪子刀","M9","刺刀","尼泊尔","短剑","流浪者匕首","锯齿爪刀"]
console.log(arr1);
var arr2=arr1.splice(1,3)
console.log(arr1);
console.log(arr2);
传三个参数时,第三个参数为你想要替换的内容
var arr1=["蝴蝶刀","爪子刀","M9","刺刀","尼泊尔","短剑","流浪者匕首","锯齿爪刀"]
console.log(arr1);
var arr2=arr1.splice(1,3,"apex1=2")
console.log(arr1);
console.log(arr2);
如果只传一个索引参数,得到的数组会从该索引的元素截取直到最后一个元素
12.indexOf()
查找元素,返回数组中目标元素的索引,如果没有则返回-1
索引值=数组.indexOf(元素)
var arr=["羊","牛","鸭","坤","鹅"]
console.log(arr);
console.log(arr.indexOf("坤"));
13.lastIndexOf()
查找元素,与indexOf不同的是,indexOf是从前往后找,lastIndexOf是从后往前找,但本质上是返回索引,返回的值当相同
var arr=["羊","牛","鸭","坤","鹅"]
console.log(arr);
// console.log(arr.indexOf("坤"));
console.log(arr.lastIndexOf("坤"));
14.every()
遍历数组 一假即假
boolean=数组.every(function(item,index,arr){
//程序和返回值
})
var arr=[234,6,2344,3421,43,567]
var bool =arr.every(function(item,index,arr){
console.log("遍历");
if(item>20){
return true
}
return false
})
console.log(bool);
every参数中的函数对应的参数:(filter,forEach,map,some同every一样)
item | index | arr |
每一个位置的值 | 索引 | 数组本身 |
这些迭代方法都不会修改原数组
every():如果每一次遍历都返回true 那么整体返回true ,如果有一次返回的是false ,那么遍历停止返回false
15.filter()
遍历数组 筛选
新数组=原数组.every(function(item,index,arr){
//程序和返回值
})
filter():返回值为当此循环遍历之后返回值为true的元素组成的数组(筛选)
var arr=[234,6,2344,3421,43,567]
var bool =arr.filter(function(item,index,arr){
console.log("遍历");
if(item>20){
return true
}
return false
})
console.log(arr);
console.log(bool);
程序筛选出大于20的项
16.forEach()
遍历数组 for循环
无=原数组.every(function(item,index,arr){
//程序和返回值
})
var arr=[234,6,2344,3421,43,567]
var bool =arr.forEach(function(item,index,arr){
console.log("遍历");
if(item>20){
return true
}
return false
})
console.log(arr);
console.log(bool);
可以看出forEach的返回值为undefined forEach就没有任何含义,相当于一个for循环
17. map()
遍历数组
新数组=原数组.every(function(item,index,arr){
//程序和返回值
})
map()将每一次遍历的返回值组成一个新的数组
var arr=[234,6,2344,3421,43,567]
var bool =arr.map(function(item,index,arr){
console.log("遍历");
if(item>20){
return true
}
return false
})
console.log(arr);
console.log(bool);
18.some()
遍历数组 一真即真
boolean=原数组.every(function(item,index,arr){
//程序和返回值
})
var arr=[234,6,2344,3421,43,567]
var bool =arr.some(function(item,index,arr){
console.log("遍历");
if(item>20){
return true
}
return false
})
console.log(arr);
console.log(bool);
some()与every()相似 不同的是some如果每一次遍历都返回false 那么整体返回false ,如果有一次返回的是true,那么遍历停止返回true
19.valueOf()
返回数组对象本身
数组本身=数组.valueOf()
程序底层需要用到的方法,我们基本用不到(也许吧,手动擦汗)