数组方法

数组:有序的数据集合

数组方法
方法名 用途
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值
flat() 数组降维,参数是要降的维度
  • 创建数组的方法
//创建数组的方法
//字面量的方式  常用
 var arr = [1,2,3,4]
console.log(arr)
//构造函数的方式
var  arr1 = new Array(1,2,3,4,5)
console.log(arr1)
//用对象的方式来创建
var  arr2 =  Array(1,2,3,4,6)
console.log(arr2)
//用Arry.of来创建
var  arr3 = Array.of(1,2,3,4,6,7)
console.log(arr3)

数组方法_第1张图片
如果数组中只放一个元素时,构造器和对象方法不能实现想要的结果

//创建数组的方法
//字面量的方式  常用
 var arr = [1]
console.log(arr)
//构造函数的方式
var  arr1 = new Array(1)
console.log(arr1)
//用对象的方式来创建
var  arr2 =  Array(1)
console.log(arr2)
//用Arry.of来创建
var  arr3 = Array.of(1)
console.log(arr3)

数组方法_第2张图片

  • 如何访问数组
// 通过数组下标的方式可以访问数组 
var arr = [ 1,2,3,4,5]
console.log(arr[1],arr[2])

在这里插入图片描述

  • 添加元素的方法
var arr = [ 1,2,3,4,5]
arr[5]=6
arr[6]=6
console.log(arr)
//也可以用push的方法来增添数组元素,也可以推入多个元素 
var arr = [ 1,2,3,4,5]
arr.push(2)
console.log(arr)

数组方法_第3张图片

数组方法_第4张图片

  • 删除元素的方法

1 直接规定数组长度来删除数组末尾的元素

2 splice方法可以删除数组中任意位置的元素 参数(第一个参数是要删除的下标,第二个参数是删除的位数,第三个参数是删除完要添加的参数
,也可以添加多个参数。)

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

数组方法_第5张图片

  • 数组的遍历
//  for循环的方式来进行数组遍历 
var arr = [ 1,2,3,4,5]
for (let i = 0 ;i < arr.length ;i++){
    console.log(arr[i])
}
// for...of的方式进行数组遍历 
console.log(for......of)
for (let ele of arr){
    console.log(ele)
}

// forEach的参数是 (遍历的元素,元素的下标,原数组)
arr.forEach((ele , index ,self )=>{
 console.log(ele,index,self)
})

输出结果如下:
数组方法_第6张图片

  • 数组中的栈模式

栈模式是先进后出的模式 在栈中压入一个元素可以用push来推进去 。

pop可以拿取末尾元素 (会改变原数组)

var arr = [ 1,2,3,4,5]
arr.push(2)
console.log(arr)
var a = arr.pop()
console.log(a)
console.log(arr)

输出结果如下:
数组方法_第7张图片

  • 数组中的队列模式
//  先进先出  
//shift是移除第一位   
var arr = [ 1,2,3,4,5]
arr.shift()
console.log(arr)
// unshift 可以在第一位添加一个或者多个元素
arr.unshift(1,1)
console.log(arr)

数组方法_第8张图片

  • 反转数组

reverse 改变原数组 返回新数组

var arr = [ 1,2,3,4,5]
//数组反转
arr.reverse()
console.log(arr)
//字符串反转
var a = 'hello'
//split() 方法用于把一个字符串分割成字符串数组。
console.log( a.split(''))
//reverse()数组反转
console.log( a.split('').reverse())
//join()把数组中的所有元素转换为一个字符串
console.log( a.split('').reverse().join(''))

数组方法_第9张图片

  • 数组排序

sort sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序

var arr = [9,1,4,7,8,3,5]
//这种方法只能在10以内正常排序 超过10的还需再定义函数 
arr.sort()
console.log(arr)

数组方法_第10张图片
超过10以后的排序如下: 10就会排到1的后面
数组方法_第11张图片
倒序
数组方法_第12张图片

  • 数组的连接

concat 不会改变原数组,返回一个新的数组

var arr = [10, 1, 4, 7, 8, 3, 5]
var arr1 = [6, 6, 6]
var b = arr.concat(arr1)
console.log(arr)
console.log(arr1)
console.log(b)

数组方法_第13张图片

  • 数组的剪裁

slice 传一个参数就是代表删除一个 第二个参数代表结尾的索引
可以用负数来表示 -1表示最后一个(不改变原数组,返回一个新数组)

arr.slice(1,4) start(1包含) 和 end(4不包含) 参数来指定字符串提取的部分。

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.slice( 0,-1)
console.log(arr)
console.log(b)

数组方法_第14张图片

map 数组 map(e=> e*2 ) 返回一个新数组

不会对原数组做出改变 map() 不会对空数组进行检测

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.map( e => e*2)
console.log(arr)
console.log(b)

数组方法_第15张图片

reduce(a,b,c,d) 不会改变原数组
第一个a代表上一次计算的结果,
第二个b代表是当前遍历到的数组元素
第三个c代表是当前遍历到的索引
第四个d代表是数组的本身

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.reduce((a,b)=>a+b )
console.log(arr)
console.log(b)

数组方法_第16张图片

  • 数组过滤

filter 返回的是符合条件的数组

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.filter(e => e > 4)
console.log(arr)
console.log(b)

数组方法_第17张图片

  • 数组测试

返回值是布尔值

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

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.every(e => e >2 )
console.log(arr)
console.log(b)  // false

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

some() 方法会依次执行数组的每个元素:

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false

var arr = [10, 1, 4, 7, 8, 3, 5]
var b = arr.some(e => e >2 )
console.log(arr)
console.log(b) // true

  • 解构赋值
var arr = [10, 1, 4, 7, 8, 3, 5]
var [, b] = arr // 即使第一位元素是空的 10也是赋给他的
console.log(arr)
console.log(b) // 1 

function info() {
    let name = "xiaoming";
    let age = "22";
    return [name, age]
}

var [name, age] = info();
console.log(name, age)

var arr = [10, 1, 4, 7, 8, 3, 5]
var [a, b, ...c] = arr  //...展开符
console.log(a, b, c)

// 函数在接收多个形参时也可以用...的方式来接收多个参数 
function info(...b) {
    console.log(b) // [1,2,3,4]
}
info(1, 2, 3, 4)
  • 数组降维
const nested = [1, 2, 3, [4, 5, [6, 7], 8, 9]]
// 这里的数组是一个多维度的数组
console.log(nested.flat(2))

数组方法_第18张图片

你可能感兴趣的:(学习阶段)