js数组操作整理

删除数组元素

pop() :删除数组的最后一个元素,返回删除的数组

let arr1 =[1,2,3,4,5]
console.log(arr1.pop())    //5
console.log(arr1) //[ 1, 2, 3, 4 ]

shift() 删除数组的第一个元素,返回删除的数组

let arr =[1,2,3,4,5]
console.log(arr.shift()) //1
console.log(arr) //[ 2, 3, 4, 5 ]

splice(i,n) 删除从i(索引值)开始之后的n元素

let arr =[1,2,3,4,5]
console.log(arr.splice(0,2)) //[ 1, 2 ]
console.log(arr) //[ 3, 4, 5 ]

添加数组元素

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

let arr =[1,2,3,4,5]
console.log(arr.unshift(9))    //6 返回长度
console.log(arr)    //[ 9, 1, 2, 3, 4, 5 ]

push() 在数组最后面添加元素,返回更新数组后的长度

let arr =[1,2,3,4,5]
console.log(arr.push('name')) //6
console.log(arr) //[ 1, 2, 3, 4, 5, 'name' ]

sort() 将数组进行排序

let arr  = [1,3,4,2,3,123,35,65,44,333,33]
//正序输出
let resArr = arr.sort((a,b)=>{
    return a - b;
})
console.log(resArr);//[1,2,3,3,4,33, 35, 44, 65, 123, 333]
console.log(arr)    //[1,2,3,3,4,  33,35, 44, 65, 123, 333]
let arr1 = [{id:2},{id:13},{id:6},{id:21},{id:5},{id:3}];
//正序
let resArr1 = arr1.sort((a,b)=>{
    return a.id - b.id;//这里可以直接写进参数里
});
console.log(resArr1 ) //[ { id: 2 }, { id: 3 }, { id: 5 }, { id: 6 }, { id: 13 }, { id: 21 } ]
console.log(arr1) // [ { id: 2 }, { id: 3 }, { id: 5 }, { id: 6 }, { id: 13 }, { id: 21 } ]

reverse() 将数组反转

let arr =[1,2,3,4,5]
console.log(arr.reverse()) //[ 5, 4, 3, 2, 1 ]
console.log(arr) //[ 5, 4, 3, 2, 1 ]

forEarch() 遍历

  • 循环数组中的每一项
  • 三个参数 : 参数item:数组中的当前项目,参数index: 当前项的索引 ,obj 原始数组
let arr =['a','b','c']
arr.forEach((item,index,obj) =>{
    console.log(item,index,obj)}
)
  • 运行结果
    js数组操作整理_第1张图片
  • 函数中的this 指向window
let arr =['a','b','c']
  arr.forEach((item,index,obj) =>{
    // console.log(item,index,obj)
    console.log(this)
  })

js数组操作整理_第2张图片

  • forEach没有返回值
let arr =['a','b','c']
 let ren = arr.forEach((item,index,obj) =>{
    // console.log(item,index,obj)
    // console.log(this)
    return item
})
console.log(ren)

js数组操作整理_第3张图片

  • 改变原数组
let arr =[1,2,3]
 let ren = arr.forEach((item,index,obj) =>{
     console.log(item,index,obj)
     obj[index] = item + 1
})
console.log(arr)

运行效果:
js数组操作整理_第4张图片

  • 函数中的this指向window
let arr =[1,2,3]
  let ren = arr.map((item,index,obj) =>{
      // console.log(item,index,obj)
      console.log(this)
  })

运行效果:
js数组操作整理_第5张图片

  • 有返回值,返回新数组
let arr =[1,2,3]
 let ren = arr.map((item,index,obj) =>{
     return item +1
})
console.log(arr)
console.log(ren)

运行效果:
js数组操作整理_第6张图片

map 遍历

  • 循环数组中的每一项
  • 参数item:数组中的当前项目,参数index: 当前项的索引, obj 原始数组
let arr =[1,2,3]
let ren = arr.map((item,index,obj) =>{
    console.log(item,index,obj)
})

运行结果:
js数组操作整理_第7张图片

slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,

let arr =[1,2,3,4,5]
console.log(arr.slice(1,3)) //[ 2, 3 ]
console.log(arr) //[ 1, 2, 3, 4, 5 ]

some() 方法用于检测数组中的元素是否满足指定条件

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。
  • some() 不会对空数组进行检测。
  • some() 不会改变原始数组。
let arr =[8,9,3]
let res = arr.some((item,index,obj) =>{
    return item >5
})
console.log(res) //true
let res1 = arr.some((item,index,obj) =>{
    return item >10
})
console.log(res1) //false
console.log(arr) //[ 8, 9, 3 ] 不会改变原数组

every() 方法用于检测数组所有元素是否都符合指定条件

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
  • every() 不会对空数组进行检测。
  • every() 不会改变原始数组。
let arr =[8,9,3]
let res = arr.every((item,index,obj) =>{
    return item >5
})
console.log(res) //false ,如果数组中检测到有一个元素不满足,则整个表达式返回 false 
let res1 = arr.every((item,index,obj) =>{
    return item >2
})
console.log(res1) //true 如果所有元素都满足条件,则返回 true
console.log(arr) //[ 8, 9, 3 ] 不会改变原数组

find()方法用于查找数组中符合条件的第一个元素,如果没有符合条件的元素,则返回undefined

  • find() 对于空数组,函数是不会执行的。
  • 不会改变原数组
let arr1 = [1, 2, 3, 4, 5];
let num = arr1.find(item => item > 1);
console.log(num)  //輸出的結果是2
console.log(arr1) //[ 1, 2, 3, 4, 5 ]
var arr = [{
    id: 1,
    name: '一',
}, {
    id: 1,
    name: '二',
}, {
    id: 2,
    name: '三',
}]
let obj = arr.find(item => item.id == 1)
let obj1 = arr.find(item => item.id == 6)
console.log(obj); //{ id: 1, name: '一' }
console.log(obj1) //undefined //没有符合条件的元素,则返回undefined
console.log(arr) //[ { id: 1, name: '一' }, { id: 1, name: '二' }, { id: 2, name: '三' } ]

filter() 方法用于把数组中的某些元素过滤掉,然后返回剩下的未被过滤掉的元素。

  • 不会对空数组进行检测
  • 不会改变原始数组
let arr1 = [1, 2, 3, 4, 5];
let num = arr1.filter(item => item > 1);
console.log(num) //[ 2, 3, 4, 5 ]
console.log(arr1) //[ 1, 2, 3, 4, 5 ]
let num1 = arr1.filter(item => item > 6);
console.log(num1) //[]
var arr = [{
    id: 1,
    name: '一',
}, {
    id: 1,
    name: '二',
}, {
    id: 2,
    name: '三',

}]
let obj1 = arr.filter(item => item.id >1)
let obj2 = arr.filter(item => item.id >3)
console.log(obj1) //[ { id: 2, name: '三' } ]
console.log(obj2)//[]
console.log(arr)//[ { id: 1, name: '一' }, { id: 1, name: '二' }, { id: 2, name: '三' } ]

includes()函数用来判断一个数组是否包含一个指定的值,包含则返回true,否则false

let arr= ['1','2','3'];
console.log(arr.includes('1')); //true
console.log(arr.includes('7')); //false

reverse方法是将数组中的元素的顺序进行反转

  • reverse方法能否用于undefined与null上
let c =null
let u = undefined
console.log(c.reverse()) //报错TypeError
console.log(u.reverse()) //报错TypeError

let a =[null]
let b =[ undefined]
console.log(a.reverse()) // 输出结果:[ null ]
console.log(b.reverse()) // 输出结果:[ undefined ]
  • 空数组上运行reverse方法 输出空数组
let e =[]
console.log(e.reverse()) // 输出结果:[]
  • reverse方法返回数组本身
let arr =[false,undefined,null]
console.log(arr.reverse()) //输出结果 [ null, undefined, false ]
console.log(arr) //输出结果 [ null, undefined, false ]
let arr1 =['a','b','c',true]
let arr2 =['a','b','',true]
console.log(arr1.reverse())  //输出结果[ true, 'c', 'b', 'a' ]
console.log(arr1)// 输出结果 [ true, 'c', 'b', 'a' ]
console.log(arr2) //输出结果 [ 'a', 'b', '', true ]

concat()方法是用于连接两个或多个数组

  • 语法: array1.concat(array2,array3,…,arrayX)
let arr1 =[1,2,3]
let arr2=['a','b','c',null]
let arr3 =['name','','age']
console.log(arr1.concat(arr2,arr3)) //[1,2,3,'a','b', 'c',null,'name', '',  'age']

join()方法就是将array数据中每个元素都转为字符串,用自定义的连接符分割

  • join(‘’)将数组元素无缝拼接
let s = ['a','p','p','l','e']
console.log(s.join('')) // apple
  • join(’ ') 将数组元素以空格分割
let s = ['Apple','is','on','my','like']
console.log(s.join(' ')) // 输出结果: Apple is on my like
  • join()将数组每个元素都转为字符串,用法等同于toString()
let s = ['a','b','c']
console.log(s) // 输出结果为:[ 'a', 'b', 'c' ]
console.log(s.join()) //输出结果为:a,b,c

持续更新中。。。

你可能感兴趣的:(javascript,javascript,前端,开发语言)