数组常用方法:
forEach() 循环
[].forEach(item=>{
要做的事情
})
filter() 过滤 会生成新数组
this.Skulist.filter(item=>{
// 判断添加 可加可不加
return true
})
concat() 合并数组或者字符串
生成什么类型,关键在于?.concat()的类型
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
//输出:[Cecilie,Lone,Emil,Tobias,Linus,Robin]
every() 判断值
返回值:满足条件为true 否则为false且剩余的元素不会再进行检测。
应用场景:复选框,数组中时候有这一项
every:一假即假,some:一真即真
let a=[1,58,4,5,6,5]
// arr当前元素属于的数组对象
let result=a.every((item,index,arr)=>{
return item==1
})
结果:true
fill()可用于替换
var fruits = ["Banana", "Orange", "Apple", "Mango"];
//替换数组的第一项 'a'要替换的值 0 开始位置 结束位置
fruits.fill('a',0,1)
find() 过滤返回符合添加的对象
let a=[{id:1,name:'张三'},{id:2,name:'王五'}]
a.find(item=>{
return item.id=1
})
结果:{id:1,name:'张三'}
findIndex() 过滤出符合条件的下标
var fruits = ["Banana", "Orange", "Apple", "Mango"];
let a=fruits.findIndex(item=>{
return item=Banana
})
//a=0
includes() 检测数组是否包含
let site = ['runoob', 'google', 'taobao'];
site.includes('runoob');
// true
site.includes('baidu');
// false
indexOf() 检测数组是否包含,包含返回那一项的索引
不包含会返回-1,包含会返回索引
true(包含): return this.searchParams.order.indexOf("1") !=-1
false(不包含):return this.searchParams.order.indexOf("1") ==-1
获取获取索引: return this.searchParams.order.indexOf("1")
//数组去重
var arr = ['C','A','A','G','G','G','D']
var newArr = []
//sort排序
arr = arr.sort(function(a,b){
return a > b
}).forEach(function(n){
if(newArr.indexOf(n) == -1){
newArr.push(n)
}
})
console.log(newArr);// ["A", "C", "D", "G"]
join() 数组转为你想要的字符串类型
let site = ['runoob', 'google', 'taobao'];
site.join('-')
//结果 'runoob-google-taobao'
map()返回一个数组,新的数组是你计算完后返回的
var array1 = [1,4,9,16];
const map1 = array1.map(item=>{
return item*2
});
console.log(map1);
// 结果:> Array [2,8,18,32]
删除数组的元素的函数
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
//Orange,Lemon
splice()
数组中刪除元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
//参数一:删除索引为几以后的值,参数二:删除几个
fruits.splice(2,2);
数组中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
// Banana,Orange,Lemon,Kiwi,Apple,Mango
reduce()一般用于计算
var numbers = [6, 4, 1, 4];
//peva 为回调的值
let a=numbers.reduce((peva,item,index)=>{
return peva+=item
},0)
// 15
some() 检测数组中是否包含
-
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
-
如果没有满足条件的元素,则返回false。
every:一假即假,some:一真即真
let a=[1,58,4,5,6,5]
// arr当前元素属于的数组对象
let result=a.some((item,index,arr)=>{
return item==1
})
结果:true
数组去重
let arr = [1, 2, 5, 485, 521, 5111, 55, 12, 1, 458, 521, 12, 5, null, null, undefined, undefined]
// 数组去重方法一
let a = Array.from(new Set(arr))
console.log(a);
// 方法二
let unique = arr => {
let map = new Map();
let brr = []
arr.forEach(item => {
if (!map.has(item)) { //判断key 是否存在
map.set(item, true)
brr.push(item)
}
})
return brr
}
console.log(unique(arr));
// 方法三
let brr = arr.filter((item, index) => {
return arr.indexOf(item) == index
})
console.log(brr);
// 方法四
let uniqueTow = arr => {
let brr = []
arr.forEach((item, index) => {
if (brr.indexOf(item) == -1) {
brr.push(item)
}
})
return brr
}
console.log(uniqueTow(arr));