// 1, from 将一个数组 或者 类变成数组,会复制一份
function arrFn() {
console.log('arguments', arguments) // [Arguments] { '0': 1, '1': 3, '2': 4, '3': 5 }
console.log('Array.from(arguments)', Array.from(arguments)) // [ 1, 3, 4, 5 ]
}
arrFn(1,3,4,5)
// 2, Array 将数据转换成 数组
let n = {a: 123242323}
let n2 = 1231423423
console.log(Array.of(n)) // [ { a: 123242323 } ]
console.log(Array.of(n2)) // [ 1231423423 ]
// 3,find、findIndex 查找对应的元素、和索引
let arr0 = [12, 22, 34, 2333, 32, 4]
let find = arr0.find((item, index, arr) => { // 查找等于4的元素,并返回这个元素, 查找不到返回 undefined
return item === 4
})
let findIndex = arr0.findIndex((item, index, arr) => { // 查找元素所在的索引,查找不到返回 -1
return item === 4
})
console.log('find 查找', find, findIndex) // 4 5
// 4,fill 填充数组 Array.prototype.fill(value, start, end=this.length)
let arr1 = [3, 4, 5, 6, 7]
arr1.fill("aaa", 1, 3) // [ 3, 'aaa', 'aaa', 6, 7 ]
console.log('fill 填充', arr1)
// 5,new Map()
let map = new Map([
['name', 'zzg'],
['title', 'test']
])
console.log('new Map 转换', map.size) // 2
console.log('map.has', map.has('name'), map.has('title')) // true true
console.log('map.get', map.get('name'), map.get('title')) // zzg test
// 6,reduce 实现累计计算
/**
arr.reduce(function(prev,cur,index,arr){
…
}, init);
其中,
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
*/
var arr2 = [2,3,4]
var sum = arr2.reduce(function(x, y) {
return x + y
})
console.log('reduce 的累计和数', sum)
// 7,filter 元素某些过滤掉,返回剩下的元素
// 删除奇数
var arr3 = [1,2,3,4,5,6]
var r1 = arr3.filter(function(x) {
return x%2 == 0 // 等于了 偶数就 返回偶数了
})
console.log('filter 删除偶数', r1) // [ 2, 4, 6 ]
// 把数组中的 空字符串删掉
var arr4 = ["A", "", "B", null, undefined, "C", ""]
var r2 = arr4.filter(function(x) {
return x && x.trim() // 如果是有效的数据 就隐式 返回true
})
console.log('filter 空字符串删掉', r2) // [ 'A', 'B', 'C' ]
// 回调
var arr = ['A', 'B', 'C']
var r = arr.filter(function(element, index, self) {
// console.log('filter element', element) // 依次打印 'A', 'B', 'C'
// console.log('filter index', index) // 依次打印 索引 0, 1, 2
// console.log('filter self', self) // 打印本身的 arr
return true // 等于了 true 表示返回
})
console.log('r', r) // [ 'A', 'B', 'C' ]
// 8,forEach 数组循环,对数组不执行回调函数
var arr5 = [3,4,5]
arr5.forEach(function(e) {
console.log('forEach 执行', e)
/*
forEach 执行 3
forEach 执行 4
forEach 执行 5
*/
})