moyahuang / 2020Flag

2020年莫莫哒要疯狂立flag!然后疯狂拔flag!
https://moyahuang.github.io/2020Flag/
0 stars 2 forks source link

BFE Day17-18 #1

Open moyahuang opened 4 years ago

moyahuang commented 4 years ago

编码任务1

需求1

将输入的十进制数字转化为二进制

function dec2Bin(decNum, base){//十位数转base进制
    var digits=[];
    var current=decNum;
    var p=current;
    var remainder=0;
    var base=base || 2;
    var alpha=[0,1,2,3,4,5,6,7,8,9,'A','B','C','E','F','G','H','I',
    'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];

    if(decNum<0 || (base<2 && base>36)){//输入检测
        return;
    }

    if(current<base){
        return current;
    }

    while(p!==0){
        p=Math.floor(current/base);
        remainder=current%base;
        digits.unshift(alpha[remainder]);
        current=p;
    }

    return digits.toString().replace(/,/g, "");
}

需求2

转化显示后的二进制数为bin-bit中输入的数字宽度,例如 dec-number为5,bin-bit为5,则转化后数字为00101 如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错

 result = digits.toString().replace(/,/g, "");//增加了简单的补零操作
    gap=width-result.length;
    if(gap>0){
        for(var i=gap; i>0; i--){
            result='0'+result;
        }
    }else{
        console.log("width too short")
    }
    return result;

编码任务2

3的小游戏,练习使用循环和条件语句,实现如下需求:

从1到100,以此在console输出各数字,但是,当数字为3的倍数或者含有3的时候,输出“PA” 比如:1,2,PA,4,5,PA,……,11,PA,PA,14,PA……

var res='1'
for(var i=2; i<=100; i++){
    if(i%3 === 0){
        res+=",PA";
    }else{
        res+=","+i;
    }
}
moyahuang commented 4 years ago

找到那个DOM

使用下方HTML代码,分别实现 script 标签中的几个函数。

在这个练习中仅允许使用以下 DOM 方法或属性,不得使用高级选择器

getElementById() getElementsByTagName() childNodes parentNode

HTML

     <div id="news-top" class="section">
            <h3>Some title</h3>
            <div class="content">
                <ul>
                    <li><span>HTML</span><a href="">Some Link1</a></li>
                    <li><span>JS</span><a class="active" href="">Some Link2</a></li>
                    <li><span>CSS</span><a href="">Some Link3</a></li>
                    <li><span>JS</span><a href="">Some Link4</a></li>
                </ul>
            </div>
            <img src="">
            <p class="">Some Text</p>
        </div>
       function getAllListItem() {
            // 返回页面中所有li标签
            return document.getElementsByTagName("li");
        }

        function findAllHtmlSpanInOneSection(sectionId) {
            var section=document.getElementById(sectionId);
            var spans=section.getElementsByTagName("span");
            var res=[];
            for(var i=0; i<spans.length; i++){
                if(spans[i].innerHTML === 'HTML'){
                    res.push(spans[i]);
                }
            }
            return res;
        }

        function findListItem(sectionId, spanCont) {
            // 返回某个section下,所有所包含span内容为spanCont的LI标签
            var section=document.getElementById(sectionId);
            var spans=section.getElementsByTagName("span");
            var res=[];
            for(var i=0; i<spans.length; i++){
                if(spans[i].innerHTML === spanCont ){
                    res.push(spans[i].parentNode);
                }
            }
            return res;
        }

        function getActiveLinkContent(sectionId) {
            // 返回某个section下,class为active的链接中包含的文字内容
            var section=document.getElementById(sectionId);
            var active=section.getElementsByClassName("active")[0];
            return active.innerHTML;
        }