zoukankan      html  css  js  c++  java
  • JavaScript 数组学习总结

    类数组转数组

    ES5解决方案

    let arr = Array.prototype.slice.call(arrlike)

    ES6解决方案

    let arr = Array.from(arrlike) // 使用Array.from 
    let arr = [...arrlike]        // 使用拓展运算符

    对象转数组

    首先,我们来看两个方法 Object.keys() 、Object.values()

    Object.keys(obj) 返回的是一个由obj对象的键名 组成的数组,obj可以是数组

    Object.values(obj)  返回的是一个由obj对象的值 组成的数组

    这两个方法有一些妙用,看下面代码:

    //判断对象是否为空
    const isEmpty = (obj) => Object.keys(obj).length !== 0
    
    //字符串转为数组
    let arr = Object.values('abc')    //arr =  ['a','b','c']

    对象的遍历

    const me = {
         firstName: 'dell',
         lastName: 'lee',
    }
    let arrme = [ ]            
    // 命令式风格 for (const [key, value] of Object.entries(me)) { arrme.push(`${value}`) }
    //函数式
    Object.entries(me).forEach(([key, value]) => console.log(`${key}: ${value}`))

    字符串转数组方法总结

    console.log(Array.from('abcd'))
    console.log([...'abcd'])
    console.log('abcd'.split(''))      //推荐使用,兼容性好

    构建重复值得数组用 fill()

    let arr = new Array(6).fill(6)        //[6,6,6,6,6,6]

     数组的方法总结

    1 插入删除类

      push/pop 数组末尾添加/删除

       unshift/shift  数组开头添加/删除

      splice  可删除,可插入

    2 截取连续子集

      slice(start,end)

    3 查找元素类

      arr.indexOf()   indexOf() 方法可返回数组中某个指定的元素(第一个)位置,没找到返回-1

      arr.lastIndexOf()  lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找,没找到返回-1

      includes()  用来判断一个数组是否包含一个指定的值    如果包含则返回 true    arr.includes(item)

           find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。

           findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

    4 拼接

      arr.join('+')         拼接成字符串

      arr1.concat(arr2)     拼接数组

    5 判断是否为数组

      arr.isArray()

    6 排序类

          sort()    排序

          reverse()  翻转数组

    7 集合变换类

          forEach    无返回值,常用于存粹的遍历,大多数情况可以替代 for 循环使用    不能变量对象,可以使用for in

          filter  返回原数组的子集,不改变原数组,用于对原数组的进行过滤筛选

    let newArr = [1,2,3,4,5,6,7].filter((item,index,arr) => {
        return item % 2 == 0
    })

       map 返回的和原数组长度相同的映射数组,用于映射到另外一个数组

    let newArray = [1,2,3,4].map((item,index,arr) => {
        return item + 1
    })

      reduce/reduceRight 返回一个和初始值类型相同的值,中文叫归并操作,用于遍历数组每个元素收集需要的数据返回一个值

    const scores = [
                {
                    subject: 'math',
                    score: 88
                },
                {
                    subject: 'chinese',
                    score: 95
                },
                {
                subject: 'english',
                    score: 80
                }
            ];
            const dis = {
                math: 0.5,
                chinese: 0.3,
                english: 0.2
            }
            const sum = scores.reduce((pre,item) => {
                return pre + item.score * dis[item.subject]
            },0)
  • 相关阅读:
    ABP文档
    SqlServer英文单词全字匹配
    npm不是以管理身份运行遇到的问题
    concurrenthashmap jdk1.8
    HashSet源码分析 jdk1.6
    Iterator设计模式--jdk1.7
    代理模式
    高并发下的HashMap,ConcurrentHashMap
    HashMap源码分析jdk1.6
    Stack&Vector源码分析 jdk1.6
  • 原文地址:https://www.cnblogs.com/linhongjie/p/11635523.html
Copyright © 2011-2022 走看看