拒绝使用reduce!
插入元素
function arrayInsert<T>(arr:T[],k:number,newVal:T){
return arr.slice(0,k).concat([newVal]).concat(arr.slice(k))
}
删除元素
function arrayDelete(arr:any[],k:number){
return arr.filter((_,index)=>index!==k)
}
替换元素
function arrayReplace<T>(arr:T[],k:number,newVal:T){
return arr.map((item,index)=>index!==k?item:newVal)
}
移动元素
function arrayMove(arr:any[],from:number,to:number){
return arrayInsert(arrayDelete(arr,from),to>from?to-1:to,arr[from])
}