zoukankan      html  css  js  c++  java
  • 数组方法延伸

    find

    forEach没有返回值,不能中断循环
    find方法是es6中的方法(不兼容)
    1、在数组中查找,如果返回true表示找到了,找到后将当前item返回,如果没有找到则返回undefined    
    2、查找到就停止循环
    
        let ary=[{name:1},{name:2},{name:3}];
        let obj=ary.find(function(item){
            return item.name==2;
        })
    

    map

    映射:将一个数组变成另一个模样,用于修改
    返回值是新数组,不会改变原数组,会将返回的值替换掉当前项
    
        let ary=[{name:1},{name:2},{name:3}];
        let temp={age:2};
        let newAry=arr.map(function(item){
            if(item.name==2) return temp;
            return item;//不写此项会导致返回undefined
        })
        
    

    filter

    在函数中返回true表示这一项留下,返回false表示这一项删除
    
        let ary=[{name:1},{name:2},{name:3}];
        let newAry=ary.filter(function(item){
            return item!=2;//删除某一项没有塌陷问题
        })
    

    声明(不关心如何实现,按照方法来用就行)

    命名式(自己写的方法)

    for in/forEach/for of的区别

    for in 
    1、遍历数组时,key是字符串类型
    2、会遍历私有和公有属性(不想遍历的私有属性也会被遍历出来)
    
    for of
    1、可以跳出循环
    2、只会遍历数组中的内容for(let value of ary){//value代表数组中的每一项}
    3、不能遍历对象
    

    reduce

    返回的结果多次叠加的操作,你还可以手动指定默认的第一项是多少
    let ary=[1,2,3,4,5,6];
    let n=0;
    ary.reduce(function(prev,next){
        return prev+next
    },50)//50是第一次默认的返回值
    二维数组  扁平化
    let arr=[['1'],['2'],['3']];
    let newArr=arr.reduce(function(prev,next){
        return prev.concat(next);
       prev['1'],next['2']
       prev['1','2'],next['3']
    })
  • 相关阅读:
    用wamp配置的环境,想用CMD连接mysql怎么连
    Mysql删除表
    MySQL创建表
    Leetcode 130. Surrounded Regions
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 110. Balanced Binary Tree
    Leetcode 98. Validate Binary Search Tree
    Leetcode 99. Recover Binary Search Tree
    Leetcode 108. Convert Sorted Array to Binary Search Tree
    Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/Juphy/p/7074804.html
Copyright © 2011-2022 走看看