-
添加元素类:push、unshift
-
删除元素类:pop、shift、splice
-
数组转字符串类:toString、join
-
字符串转数组:Array.of,Array.at(根据索引获取对应的值),Array.flat(),Array.flatMap()
var myArr = Array.of("Runoob","Google","Taobao") console.log(myArr);//['Runoob', 'Google', 'Taobao'] let arr =['Banana', 'Orange', 'Apple', 'Mango']; console.log(arr.at(1));//Orange console.log(arr.at(-2)); // Apple flat 根据指定的递归深度返回一个新的数组 let list = ['origin','red',['blue',['pink']]] console.log(list.flat());['origin', 'red', 'blue', Array(1)] console.log(list.flat(3));['origin', 'red', 'blue', 'pink'] flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组,其结构深度为1 const arr1 = [1, 2, [3], [4, 5,[8,9]], 6, []]; const flattened = arr1.flatMap(num => num); console.log(flattened);// [1, 2, 3, 4, 5, Array(2), 6]
-
遍历类:forEach、reduce、reduceRight、map、filter、some(不会改变原数组)、every(不会改变原数组)
-
let array = ['red','yellow','blue','pink']; array.forEach((item,index,self)=>{ console.log(item,index,self) // red 0 ['red', 'yellow', 'blue', 'pink'] self输出的是数组本身 })
reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。reduce方法可做的事情特别多,就是循环遍历能做的,reduce都可以做,比如数组求和、数组求积、数组中元素出现的次数、数组去重Q 等等
举例:根据对象的动态属性查找对应的值
let menu = "memberCenter":{ "functional":{ "strategy":{ "StrategicPopup":{ "children_list":"" }, "children_list":"" }, "children_list":"" }, "indicator":{ "children_list":"indicator_vip_bg.png" }, } let checkList = ['memberCenter','functional','strategy'].reduce((pre,cur,index,arr,init)=>{ return pre[cur] },menu) console.log(checkList ) // {"StrategicPopup":{"children_list":""}
reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加
reduce() 对于空数组是不会执行回调函数的。
every检测数组所有元素是否都符合指定条件,接收的是个数组,array.every((item)=>{return item != 0 })
some:方法用于检测数组中的元素是否满足指定条件array.some(function(currentValue,index,arr),thisValue)
-
创建空数组:fill
new Array(5).fill({type:'add'}) //填充空数组 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.fill("Runoob"); //输出:Runoob,Runoob,Runoob,Runoob
-
排序:sort
-
拼接:concat
-
复制:copyWithin
var fruits = ["Banana", "Orange", "Apple", "Mango"]; // 复制数组的前面两个元素到后面两个元素上 fruits.copyWithin(2, 0); console.log(fruits) // Banana,Orange,Banana,Orange
-
索引:indexOf、lastIndexOf
let array = ['red','yellow','blue']; array.indexOf('red');// 0 输出下标 array = ['red','yellow','blue','blue']; array.lastIndexOf('blue') //3
-
翻转:reverse
-
浅拷贝:slice
-
查找:find、findIndex,inculdes
-
迭代数组:entries,keys
var fruits = ["Banana", "Orange", "Apple", "Mango"]; let a = fruits.entries(); for(let item of a){ console.log(a.next().value); //输出的值如下 [0, "Banana"] [1, "Orange"] [2, "Apple"] [3, "Mango"] } keys获取键值 var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = fruits.keys(); fruits.forEach(()=>{ console.log(x.next().value); //0,1,2,3 输出下标键值 })
-
其他:from、isArray()、
from 示例 var myArr = Array.from("RUNOOB") console.log(myArr); // ['R', 'U', 'N', 'O', 'O', 'B']