一、数组
push()
数组尾部新增一个或多个元素,并返回新的长度;
unshift()
数组的头部新增一个或多个元素,并返回新的长度;
pop()
删除数组尾部的元素,并返回数组的最后一个元素。
let arr=[1,2,3,4]
console.log(arr.pop()//[4]
console.log(arr)//[1, 2, 3]
shift()
数组的第一个元素从其中删除,并返回第一个元素的值
let arr=[1,2,3,4]
console.log(arr.shift()//[1]
console.log(arr)//[2, 3,4]
splice()
向数组中添加/删除项目,然后返回被删除的项目;
删除:splice(startInsdex,length)
新增:splice(startInsdex,0,arr1,arr2...arrN)
slice()
从已有的数组中返回选定的元素,返回一个子数组,不改变原数组;
语法:arrayObject.slice(start,end); start:必需。规定从何处开始选取,end:可选。规定从何处结束选取;
let arr = [1,2,3,4]
console.log(arr.slice(0,2))//[1, 2]
console.log(arr)//[1, 2, 3, 4]
some()
检索数组对象中是否有符合规则的元素;
let arr = [10,11,12,13]
console.log(arr.some(i=>i<9)) //判断arr中是否有元素小于9 //false
console.log(arr.some(i=>i<11)) //判断arr中是否有元素小于11 //true
forEach()-遍历
改变原数组
map()
return 返回一个新的数组,不改变原数组
reduce
- 求和
var arr1=[1,2,3,4,5]
var sum=arr1.reduce((pre,cur)=>{
return pre+cur
})
console.log('sum',sum);
- 计算数组中某项出现的次数
var arr2=['jack','dora','yee','dora','studio']
var obj=arr2.reduce((pre,cur)=>{
if(cur in pre){
pre[cur]++
}else{
pre[cur]=1
}
return pre
},{})
console.log('obj',obj);
- 二维数组转为一维数组
var arr3=[[1,2],3,[4,5]]
var newArr=arr3.reduce((pre,cur)=>{
return pre.concat(cur)
},[])
console.log('newArr',newArr);
- 多维数组转为一维数组
var arr4=[[1,2],3,[4,[5,6,7]]]
function format(arr){
return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur)?format(cur):cur)
},[])
}
console.log('多维数组转化newArr1',format(arr4));
- 对象属性求和
var result=[
{
category:'pear',
total:120
},
{
category:'apple',
total:20
},
{
category:'banana',
total:60
}
]
var sum2=result.reduce((pre,cur)=>{
return pre+cur.total
},0)
console.log('sum2',sum2);
数组去重
- ES6 Set
function uniqueArr1(arr){
return [...new Set(arr)]
}
- 两次循环
function uniqueArr2(arr){
for(let i=0,len=arr.length;i<len;i++){
for(let j=i+1,len=arr.length;j<len;j++){
if(arr[i]==arr[j]){
arr.splice(j,1)
j--;
len--
}
}
}
return arr
}
- indexOf/includes
function uniqueArr3(arr){
var arr1=[]
arr.forEach((item,index,arr)=>{
// if(arr1.indexOf(item)==-1){
// arr1.push(item)
// }
if(!arr1.includes(item)){
arr1.push(item)
}
})
return arr1
}
- filter
function uniqueArr4(arr){
return arr.filter((el,index)=>{
return arr.indexOf(el)==index
})
}
- reduce
function uniqueArr5(arr){
var newArr=arr.reduce((pre,cur)=>{
if(!pre.includes(cur)){
return pre.concat(cur)
}else{
return pre
}
},[])
return newArr
}
二、字符串
slice(start,end)
接收的是起始位置和结束位置(注意:不包括结束位置)
substring(start,end)
接收的是起始位置和结束位置(注意:不包括结束位置)
substr(start,length)
接收的则是起始位置和所要返回的字符串长度。
split()
字符串分割,用于把一个字符串分割成字符串数组;