数组的所有方法整理学习

复习数组中的所有方法

复习数组中的所有方法以及es6 新出的方法

concat

  var arr1 = [1, 2, 3, 4, 5]
  var arr2 = ['a', 'b', 'c', 'd']
  // 数组内容合并,返回新的数组
  console.log(arr1.concat(arr2))
  //[1, 2, 3, 4, 5, "a", "b", "c", "d"]

  // 可以同时合并多个数组
  console.log(['111'].concat(arr2,['12'],['13'], arr1))
  //["111", "a", "b", "c", "d", "12", "13", 1, 2, 3, 4, 5]

copyWithin

  var arr = ['s', 'c', 'r', 'i', 'p', 't']
  console.log(arr.copyWithin(4, 1, 2))//["s", "c", "r", "i", "c", "t"]
  // copyWithin(target, start, end)
  // target 复制到指定位置
  // start 从那个地方开始
  // end 到那里结束
  // 将索引从第1项开始到第2项结束(不包含索引2)的内容复制到索引为4的位置上

entries

var arr = ['s', 'c', 'r', 'i', 'p', 't']
// 从数组中创建一个可迭代的对象。迭代对象的每个实体来自数组对应的元素
// `注意: IE11 及其更早的浏览器版本不支持 entries 方法。`
var x = arr.entries();
console.log(x.next().value)//[0, "s"]
console.log(x.next())
console.log(x.next())

输出结果:

every

  var arr = [100,200,3,400,500]
  // every 返回结果有一个为false 都为false
  arr.every((item, index, ar)=>{
    console.log(item, index, ar)// 100 0 (5) [100, 200, 3, 400, 500]
    return item < 50
  })

fill

  var arr = ['s', 'c', 'r', 'i', 'p', 't']
  // fill() 方法用于将一个固定值替换数组的元素。
  // `注意: IE 11 及更早版本不支持 fill() 方法。`
  console.log(arr.fill('值', 3, 4)) // ["s", "c", "r", "值", "p", "t"]
  // fill 和 copyWithin 类似,一个是指定内容,一个是以索引为目标

filter

  var arr = [1,2,3,4,1]
  // 过滤数据 返回满足条件的值
  var a = arr.filter((item, index, ar, a)=>{
    return item >= 3
  })
  console.log(a); // [3, 4]

find

  var arr = [3, 10, 18, 20];
  // 满足条件返回对应的【值】,并且跳出,不在执行
  var a = arr.find((v)=> {
    console.log(v)
    return v >= 18
  })
  console.log(a) // 18

findIndex

var arr = [3, 10, 18, 20];
// 返回满足条件对应的【索引】,并且跳出,不在执行
var a = arr.findIndex((v)=> {
  console.log(v)
  return v >= 18
})
console.log(a) // 2

forEach

  var arr = ['a','b','c']
  // 循环数据 没有返回值。可通过return 跳出循环
  arr.forEach((item, index, ar)=>{
    console.log(item, index, ar)
    // item 值
    // index 索引
    // ar 当前数组
  })

includes

  // includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
  [1, 2, 3].includes(2); // true

indexOf

  // 从前向后搜索 查找当前数组中的某一个元素所在位置的索引,没有则返回-1
  [1,2,3,4].indexOf(3) // 2

join

var arr = ['s', 'c', 'r', 'i', 'p', 't']
// 数组内容的拼接
arr.join('')// script
arr.join('*')// "s*c*r*i*p*t"

keys

var arr = ['s', 'c', 'r', 'i', 'p', 't'].keys()
// 数组 keys() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键。
console.log(arr.next())//{value: 0, done: false}
console.log(arr.next())//{value: 1, done: false}
console.log(arr.next())//{value: 2, done: false}
console.log(arr.next())//{value: 3, done: false}

lastIndexOf

// indexOf类似 区别在于 【从后向前搜索】
['s', 'c', 'r', 'i', 'p', 't'].lastIndexOf('t') // 5

length

// 返回数组的长度 从1 开始
['s', 'c', 'r', 'i', 'p', 't'].length

map

  var arr = ['s', 'c', 'r', 'i', 'p', 't']
  // 数组遍历,返回新的数组
  var a = arr.map((item , index, ar)=>{
  // item 值
  // index 索引
  // ar 当前数组
    if(index < 3) {
      return item
    }
  })
  // a  ["s", "c", "r", undefined, undefined, undefined]

pop

var arr = ['s', 'c', 'r', 'i', 'p', 't']
// 删除数组中的最后一项
arr.pop()// 返回删除的元素
console.log(arr)//["s", "c", "r", "i", "p"]

push

var arr = ['s', 'c', 'r', 'i', 'p', 't']
// 给数组追加值
arr.push(1)// 返回索引
console.log(arr)//["s", "c", "r", "i", "p", "t", 1]

reduce

// 求数据的总和
var arr = [1,2,3,4,5]
var a = arr.reduce((sum, current, index, ar)=>{
  // sum return 返回的值
  // current 当前遍历的值
  // index 索引
  // 当前遍历的数组
  return sum + current;
})
console.log(a) // 15

reduceRight

// 求数据的总和
var arr = [1,2,3,4,5]
var a = arr.reduceRight((sum, current, index, ar)=>{
  // reduceRight 和 reduce 类似, 区别 reduceRight 从右向左,reduce从左向右
  return sum + current;
})
console.log(a) // 15

reverse

// 数组内容反转
[1,2,3].reverse() //[3, 2, 1]

shift

// 用于把数组的第一个元素从其中删除,并返回第一个元素的值。
[1,2,3].shift() //1

unshift

// 可向数组的开头添加一个或更多元素,并返回新的长度。
[1,2,3].unshift(4) //4
var arr = [1,2,3]
arr.unshift('a','b','c')
// arr ["a", "b", "c", 1, 3, 4]

slice

var arr = ['s', 'c', 'r', 'i', 'p', 't']
// 方法可从已有的数组中返回选定的元素
arr.slice(2, 3) // ["r"]

some

  var arr = [1,2,61,4,5];
  // some 有一个满足条件 就停止运行
  arr.some((item, index, ar)=> {
    console.log(item, index, ar)
    return item === 61
  })

sort

var arr = ['c','d','a', 'b']
// 方法用于对数组的元素进行排序。
arr.sort((a, b)=> {
  return a - b
})
/*-------------------------*/
var arr = [1,2,6,4,5];
arr.sort((a, b) => a - b);
//  [1, 2, 4, 5, 6]
/*-------------------------*/
var arr = [1,2,6,4,5];
arr.sort((a, b) => b - a);
//  [6, 5, 4, 2, 1]

// 注意:arr.sort() 直接调用会导致排序错误

splice

var arr = [1,2,3,4,5]
// 数组内容截取
arr.splice(0,1) // [1]
//arr [2, 3, 4, 5]

toLocaleString

var array = ['a', 'b', 'c'];
//把数组转换为本地数组,并返回结果
console.log(array.toLocaleString()); //"a,b,c"

toString

var array = ['a', 'b', 'c'];
//把数组转换为字符串,并返回结果,每一项以逗号分割。
console.log(array.toLocaleString()); //"a,b,c"

备注:如果有那块错误或者还有遗漏的请留言,感谢

原文地址:https://www.cnblogs.com/wangyong1997/p/13454205.html