1、array.from :方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
Array.prototype.slice.call(arguments);数组的slice方法可以将“类似数组的对象”变成真正的数组
伪数组(函数的arguments对象,大多数 DOM 元素集,字符串)
这个东西就是把一些集合,或者长的像数组的伪数组转换成真的数组,比如arguments,js选择器找到dom集合,还有对象模拟的数组
返回的是一个数组
将一个类数组对象转换为一个真正的数组,必须具备以下条件:
1)该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。
2)该类数组对象的属性名必须为数值型或字符串型的数字
ps: 该类数组对象的属性名可以加引号,也可以不加引号
Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
let arr = [12,45,97,9797,564,134,45642]
let set = new Set(arr)
console.log(Array.from(set, item => item + 1)) // [ 13, 46, 98, 9798, 565, 135, 45643 ]
将字符串转换为数组:
let str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
Array.from参数是一个真正的数组
console.log(Array.from([12,45,47,56,213,4654,154]))
像这种情况,Array.from会返回一个一模一样的新数组
2. Array.of Array.of(1, 2, 3, 4) //把参数合并成一个数组返回,如果参数为空,则返回一个空数组
3. find/findIndex 返回数组中第一个符合条件的元素, findIndex返回索引
[1, 2, 3, 4, 5].find(function(item){
return item > 3
})
4、 arr.sort()
let arr = [2,10,6,1,4,22,3]
let arr1 = arr.sort((a, b) =>a - b)
5、arr.slice(start,end) 切去索引值start到索引值end的数组(包括开始,不包括结束),不包含end索引的值,返回值是切出来的数组
6、arr.forEach(callback) 遍历数组,无return
callback的参数: value --当前索引的值
index --索引
array --原数组
currentValue:必选。当前元素。
index:可选。当前元素索引值。
arr:可选。当前元素所属的数组对象。
thisValue:可选。传递给函数,用作“this”的值;如果省略,"this"值则为"undefined"
7、arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组(callback的参数:如上)
var arr = [1,2,3,4,5] ;
var newArr = arr.map(function(item,index){
return item*2 ; //操作更新数组
})
ps: arr.forEach()和arr.map()的区别
1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
2. arr.forEach() 没有return arr.map() 有return
8、arr.filter(callback) 过滤数组,返回一个满足要求的数组 (callback的参数:如上)
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
let arr = [1,2,3,4,5]
let arr1 = arr.filter( (i, v) => i < 3)
console.log(arr1) // [1, 2]
9、arr.every(callback) 依据判断条件,数组的元素是否全满足,若满足则返回ture
10、arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
currentValue:必选。当前元素。
index:可选。当前元素索引值。
arr:可选。当前元素所属的数组对象。
thisValue:可选。传递给函数,用作“this”的值;如果省略,"this"值则为"undefined"
11、arr.reduce(callback, initialValue初始值) 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
arr.reduce(function(prev,cur,index,arr){
...
},);
arr 表示将要原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
12、arr.reduceRight(callback, initialValue初始值)
与arr.reduce()功能一样,不同的是,reduceRight()从数组的末尾向前将数组中的数组项做累加。
13、arr.includes() 判断数中是否包含给定的值 includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
14、arr.keys() 遍历数组的键名
15、arr.values() 遍历数组键值
16、arr.entries() 遍历数组的键名和键值
来源:https://www.cnblogs.com/zjz666/p/11546199.html