文章目录

  • 一、js常用数组api
  • 1.unshift
  • 2.push
  • 3.shift
  • 4.pop
  • 5.concat
  • 6.splice
  • 7.slice
  • 8.join
  • 9.every
  • 10.some
  • 11.fill
  • 12.map
  • 13.reduce
  • 14.参考链接
  • 待补充。。


一、js常用数组api

1.unshift

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

var arr1 = [1,2,3,4,5]
  var arr2 = ['wo','de','ming','zi']
  var length1 = arr1.unshift(...arr2)
  console.log(length1, arr1) // 9, ['wo', 'de', 'ming', 'zi', 1, 2, 3, 4, 5]

2.push

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

var arr3 = [1,2,3,4,5]
  var arr4 = ['wo','de','ming','zi']
  var length2 = arr3.push(...arr4)
  console.log(length2, arr3) // 9, [1, 2, 3, 4, 5, 'wo', 'de', 'ming', 'zi']

3.shift

方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

var arr3_1 = [1,2,3,4,5]
  var str3_1 = arr3_1.shift()
  console.log(str3_1, arr3_1) // 1, [2, 3, 4, 5]

4.pop

方法用于把数组的最后一个元素从其中删除,并返回最后一个元素的值。

var arr4_1 = [1,2,3,4,5]
  var str4_1 = arr4_1.pop()
  console.log(str4_1, arr4_1) // 5, [1, 2, 3, 4]

5.concat

concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var arr5_1 = ["Cecilie", "Lone"];
  var arr5_2 = ["Emil", "Tobias", "Linus"];
  var arr5_3 = ["Robin"];
  var arr5_4 = arr5_1.concat(arr5_2,arr5_3);
  console.log(arr5_4, arr5_1) // ['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin'] , ['Cecilie', 'Lone']
  // 还有一种方式
  var arr5_5 = [...arr5_1, ...arr5_2, ...arr5_3]
  console.log(arr5_5) // ['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin'

6.splice

splice(start,deleteCount,item)主要用来对js中的数组进行操作,包括删除,添加,替换等,第一个参数一般必须填,返回值为被替换的数。
start:开始的位置,为负数的时候从结尾往后面数个数。
deleteCount:可选参数,要删除或者替换的个数,如果未规定此参数,则删除从 start 开始到原数组结尾的所有元素。
item:替换的项。

// splice(start,deleteCount,item)
  var arr6_1=[1,2,3,4];
  var arr6_2=arr6_1.splice(0,1,3);
  console.log(arr6_2, arr6_1) // [1] , [3, 2, 3, 4]

  var arr6_3=[1,2,3,4,5];
  var arr6_4=arr6_3.splice(-3,2,88);
  console.log(arr6_4, arr6_3) // [3,4] , [1,2,88,5]

  var arr6_3=[1,2,3,4,5];
  var arr6_4=arr6_3.splice(-3,2,88);
  console.log(arr6_4, arr6_3) // [3,4] , [1,2,88,5]

  var arr6_5=[1,2,3,4,5];
  var arr6_6=arr6_5.splice(3,2);
  console.log(arr6_6, arr6_5) // [4,5] , [1,2,3]

  var arr6_7=[1,2,3,4,5];
  var arr6_8=arr6_7.splice(2);
  console.log(arr6_8, arr6_7) // [3,4,5],[1,2]

7.slice

slice(start, end)方法可从已有的数组中返回选定的元素,slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
strat:可选。规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
end:可选。可选。规定从何处结束选取。slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

var arr7_1=[1,2,3,4,5];
  var arr7_2=arr7_1.slice(2);
  console.log(arr7_2, arr7_1) // [3,4,5],[1,2,3,4,5]

  var arr7_3=[1,2,3,4,5];
  var arr7_4=arr7_3.slice(-2, -1);
  console.log(arr7_4, arr7_3) // [4],[1,2,3,4,5]

  var arr7_5=[1,2,3,4,5];
  var arr7_6=arr7_5.slice(); // 不传参相当于浅复制
  console.log(arr7_6, arr7_5) // [3,4,5],[1,2]

8.join

用于把数组中的所有元素转换一个字符串。

var arr8_1=[1,2,3,4,5];
  var arr8_2=arr8_1.join('-');
  console.log(arr8_2) // 1-2-3-4-5

9.every

方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
/如果所有元素都满足条件,则返回 true。。

var arr9_1=[18,22,33,45,52];
  var boole_9_1=arr9_1.every(age=>age>=18);
  console.log(boole_9_1) // true

  var arr9_2=[]; // every有一点需要注意,就是在数组是空的时候,一切情况都会返回true
  var boole_9_2=arr9_2.every(age=>age>=18);
  console.log(boole_9_2) // true

  var arr9_3=[18,22,3,45,52];
  var boole_9_3=arr9_3.every(age=>age>=18);
  console.log(boole_9_3) // false

10.some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

var arr10_1=[8,22,33,45,52];
  var boole10_1=arr10_1.some(age=>age>=18);
  console.log(boole10_1) // true

11.fill

方法用于将一个固定值替换数组的元素,array.fill(value, start, end)
value 必需。填充的值。
start 可选。开始填充位置。
end 可选。停止填充位置 (默认为 array.length)

var arr11_1 = ["Banana", "Orange", "Apple", "Mango"];
  arr11_1.fill("rumenz");
  console.log(arr11_1) // [rumenz,rumenz,rumenz,rumenz]

  var arr11_2 = ["Banana", "Orange", "Apple", "Mango"];
  arr11_2.fill("rumenz", 1, 3);
  console.log(arr11_2) // [Banana,rumenz,rumenz,Mango]

12.map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素

var arr12_1 = [1,2,3,4,5]
  var arr12_2 = arr12_1.map(item=>item*2)
  console.log(arr12_2) // [2,4,6,8,10]

13.reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

// 数组去重
  var arr13_1 = [1,2,3,4,5,3,3,4,6,2,8]
  var arr13_2 = arr13_1.reduce((prev, cur, index, arr)=>{
    if(!prev.includes(cur)) {
      prev.push(cur)
    }
    return prev
  },[])
  console.log(arr13_2)

  // 统计字符串数量
  var arr13_3 = ['s','b','t','s','t','a','b','m','t','a','z']
  var obj13_1 = arr13_3.reduce((prev, cur, index, arr)=>{
    if(cur in prev) {
      prev[cur] ++
    } else {
      prev[cur] = 1
    }
    return prev
  },{})
  console.log(obj13_1)

  // 找出数组中最大值
  var arr13_4 = [1,2,34,22,56,43]
  var num13_1 = arr13_4.reduce((prev, cur, index, arr)=>{
    if(prev<=cur) {
      prev = cur
    }
    return prev
  },0)
  console.log(num13_1)

14.参考链接

待补充。。