arr.push(newItem)
:修改arr
,返回新长度(push
推)arr.push(item1,item2)
arr.unshift(newItem)
arr.unshift(item1,item2)
arr.splice(index,0,'x')
在index
(如:index=4,则在第4个位置,也是第三个位置的后面间隙)处插入x
,0
表示什么都不删arr.splice(index,1)
在index这个位置删掉一个arr.splice(index,0,'x','y')
arr.splice(index,1,'x')
将index位置的元素替换为'x'
(也就是删一个又加了一个)arr[9] = 'x'
arr.reverse()
let s = 'abcde'
s.split('')
s.split('').reverse()
s.split('').reverse().join('')
arr.sort()
默认排序,小的在前大的在后arr.sort(function(a,b){ 1/0/-1 })
需要用户自己设定数字大小比较方式,其中1
表示前面一个(a)
大,0
表示一样大,-1
表示后一个(b)
大let arr = [5,2,4,3,1]
arr.sort(function(a,b){
if(a>b){
return -1//当a的数值大于b的数值时返回-1,则表示设定b大于a
}else if(a===b){
return 0
}else{
return 1
}
})
let arr = [
{name:'小红',score: 99} ,{name:'小明',score: 82} ,{name:'小蓝',score: 00}
]
arr.sort(function(a,b){
if(a.score>b.score){
return -1
}else if(a.score===b.score){
return 0
}else{
return 1
}
})
arr.sort((a,b))=>a-b
a
大,返回负数,则表示后一个b
大let arr = [
{name:'小红',score: 99} ,{name:'小明',score: 82} ,{name:'小蓝',score: 00}
]
arr.sort((a,b)=>a.score-b.score)//如果a大于b,则返回正数,则设定a>b
arr.sort((a,b)=>b.score-a.score)
注意:不会改变原数组
map
:一一映射arr.map(item => item*item)
变成平方,括号内是操作的箭头函数filter
:过滤操作arr.filter(item => item%2 === 0?true:false)
只要偶数item%2 === 0?true:false
等价于item%2 === 0
0
,是(true)则返回true
,否(false)则返回false
),本身就含有true和false,返回本身即可。reduce
:减少,合成(可以理解为用框子打劫的过程)arr.reduce((sum,item)=>{return sum+item},0)
sum
去操作(如加法)第一个的item
,返回的值作为新的sum
,又去操作下一个item
,如此累计return
的值作为下一次的sum
map
arr.reduce((result,item)=>{return result.concat(item*item )},[])
concat
将空数组和item*item
链接起来filter
let arr = [1,2,3,4,5]
arr.reduce((result,item)=>{
if(item%2 === 0){
return result.concat(item)//余数等于0,则item连接到result后面
}else{
return result //直接返回原样子,拿着框子走人
}
},[])
简化:变成?:
表达式(没有return就不需要花括号),然后返回原样可以认为是返回空数组,都要返回则合在一起
arr.reduce((result,item)=>result.concat(item%2===0?item:[]),[])
arr.reduce((result,item)=>{
if(item.parent === null){
result.id = item.id
result['名称'] = item['名称']
}else{
result.children.push(item)
delete item.parent
item.children = null
}
return result
},{id:null,children:[]})