QA

头像
yzbao
    阅读 4 分钟

    图片描述

    let s = "This is C programming text";
    let t = "This is a text for C programming";
       
    //时间复杂度:O(n^2)
    //空间复杂度:O(1)
    function f1(str1,str2,r){
        let arr1 = str1.split(" "),
        arr2 = str2.split(" "),
        res = [];
        if(r>Math.min(arr1.length,arr2.length)||r<1)return null;
        //思路:1找出公共数组
        for(let i=0;i<arr1.length;i++){
            if(arr2.indexOf(arr1[i])===-1){
                arr1.splice(i,1);
                i--;
            }
        }
    
        //2只保留第一个碰到的
        arr1.forEach(item => {
            if(!res[item.length]){
                res[item.length] = item
            }
        });
    
        //3剩下的排序
        res.sort((a,b)=>a.length<b.length);
        return res[r-1] ? res[r-1] : null;
    }

    图片描述

    //穷举法
    //时间复杂度:O(n^2)
    //空间复杂度:O(1)
    function fn(num){
        let res = [];
        //找到符合条件的首个数字i和项数n
        for(let i = 1;i<num/2;i++){
        
            for(let n = 1;;n++){
                if((2*i+n)*(n+1)/2===num){
                    res.push([i,n])    
                }
                if((2*i+n)*(n+1)/2>num){
                    break
                }
            }
        };
        //输出
        if(res.length>0){
            let output = "";
            res.forEach(item=>{
                for(var i = 0;i<=item[1];i++){
                    output+=item[0]+++' ';
                }
                output+="\n";
            })
            return output;
        }else{
            return "NONE";
        }
        }

    图片描述

    1.链接:https://yzbaoo.github.io/resume/
    项目地址:https://github.com/yzbaoo/resume
    2.链接:https://yzbaoo.github.io/Trav...
    项目地址:https://github.com/yzbaoo/Tra...

    红色:去过
    绿色:计划去
    功能点1:右键map添加计划
    功能点2:右键未完成计划可更改完成状态和删除计划
    功能点3:已去过的省份不可再次添加计划
    功能点4:鼠标hover显示时间和备注
    思路:
    1.mockdata:
            var dataSource = [
                {
                    province:"黑龙江省",
                    point:{lng: 129.466081, lat: 44.625683},
                    desc:"my hometown",
                    time:"2018-7-5",
                    type:0,//0:去过,1:计划去
                },{
                    province:"辽宁省",
                    point:{lng: 124.535605, lat: 41.979285},
                    desc:"2015年4月",
                    time:"2018-7-5",
                    type:0,//0:去过,1:计划去
                },{
                    province:"北京市",
                    point:{lng: 116.146438, lat: 39.77318},
                    desc:"Dream start!",
                    time:"2018-7-5",
                    type:0,//0:去过,1:计划去
                },{
                    province:"四川省",
                    point:{lng: 107.131762, lat: 30.083521},
                    desc:"计划今年十一去嗨!!",
                    time:"2018-7-5",
                    type:1,//0:去过,1:计划去
                }
            ]; 
        2.编写renderMark方法,实现data驱动ui变化 
    //渲染函数    
    function renderMark(){
        map.clearOverlays();
        dataSource.forEach((d,i)=>{
            //渲染mark
            var marker = new BMap.Marker(d.point,{
                icon: new BMap.Symbol(BMap_Symbol_SHAPE_STAR, {
                    scale: 2,
                    fillColor: d.type===0 ? "red" : "#51C332",
                    fillOpacity: 0.8,
                    strokeColor:"#fff",
                })
            }); 
            map.addOverlay(marker);             
            marker.setAnimation(d.type===0 ? BMAP_ANIMATION_DROP : BMAP_ANIMATION_BOUNCE); //动画
            //渲染title
            var title = "时 间: " + d.time + "\n\r" + "描 述: " + d.desc;
            marker.setTitle(d.type===0 ? "已占领"+ "\n\r" +title:"计划"+ "\n\r" +title);
            //为type=1的mark绑定右键编辑事件
            if(d.type===1){
                var menu = new BMap.ContextMenu();
                var txtMenuItem = [
                    {
                        text:'标记完成',
                        callback:function(i){
                            dataSource[i].type=0;
                            renderMark()
                        }
                    },{
                        text:'删除计划',
                        callback:function(i){
                            dataSource.splice(i,1);
                            renderMark()
                        }
                    }
    
                ];
                txtMenuItem.forEach(d2=>{
                    menu.addItem(new BMap.MenuItem(d2.text,d2.callback.bind(this,i),100));
                })
                marker.addContextMenu(menu);
            }
        })
    }
    
    

    yzbao
    626 声望19 粉丝

    Uncaught ReferenceError