// 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
    */
})
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐