刷题##day2

  1. 生成页码

描述

请补全JavaScript代码,要求根据参数动态生成"li"标签页码并插入"ul"标签下。要求如下:
1. "allItem"为总数据项个数,"pageItem"为每页的数据项个数
2. "li"标签内容为当前页码数,页码从1开始

示例

输入:
_createPage(13,2)
输出:
"li"长度为7,"li"内容依次为"1","2","3","4","5","6","7"

作答

  1. 要求参数动态生成li标签在ul下 求出页码数,然后渲染数据即可。

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        <ul id="ul">
            
        </ul>
        <script type="text/javascript">
            const _createPage = (allItem, pageItem) => {
                // 补全代码
                var ul =document.querySelector('#ul')
                let index=Math.ceil((allItem/pageItem));
                for(let i=1;i<=index;i++){
                    let li =document.createElement('li')
                    li.innerHTML=i;
                    ul.append(li)
                }
            }
        </script>
    </body>
</html>

2.总成绩排名

描述

请补全JavaScript代码,要求将数组参数中的对象以总成绩(包括属性"chinese"、"math"、"english")从高到低进行排序并返回。

作答

  1. 对对象中的属性进行遍历排序即可。需要注意的是排序是按从高到低进行。

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        
        <script type="text/javascript">
        const _rank = array => {
            // 补全代码
            array.sort((gao,di)=>{
                let g=gao.chinese+gao.math+gao.english;
                let d=di.chinese+di.math+di.english;
                return d-g;
            })
            return array;
        }
        </script>
    </body>
</html>

3.子字符串频次

描述

请补全JavaScript代码,该函数接受两个参数分别为字符串、子字符串,要求返回子字符串在字符串中出现的频次。

作答

  1. 求子字符串在字符串出现的次数,需要调用split方法进行拆分。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _searchStrIndexOf = (str, target) => {
                // 补全代码
                    let index= str.split(target).length-1;
                return index
            }
        </script>
    </body>
</html>
  1. 利用正则表达式进行查询

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _searchStrIndexOf = (str, target) => {
                // 补全代码
                    let reg=new RegExp(target,'g');
                return str.match(reg).length
            }
        </script>
    </body>
</html>
  1. 利用indexOf方法查询

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>

        <script>
            const _searchStrIndexOf = (str, target) => {
                // 补全代码
                let index =str.indexOf(target);
                let sum=0;
                while(index>0){
                    index=str.indexOf(target,index+1);
                    sum++
                }
                return sum
            }
        </script>
    </body>
</html>

4.继承

描述

请补全JavaScript代码,实现以下功能:
1. 给"Human"构造函数的原型对象添加"getName"方法,返回当前实例"name"属性
2. 将"Chinese"构造函数继承于"Human"构造函数
3. 给"Chinese"构造函数的原型对象添加"getAge"方法,返回当前实例"age"属性

作答

  1. 对于类的继承和使用父类方法:

  1. 首先通过Human.prototype.getName给“Human”的原型添加“getName”函数

  1. 然后通过Chinese.prototype将“Chinese”的原型挂载在“Human”构造函数的实例上

  1. 修复“Chinese”的原型链

  1. 最后通过Chinese.prototype.getAge给“Chinese”的原型添加“getAge“函数

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        
        <script type="text/javascript">
            function Human(name) {
                this.name = name
                this.kingdom = 'animal'
                this.color = ['yellow', 'white', 'brown', 'black']
            }
            
            function Chinese(name,age) {
                Human.call(this,name)
                this.age = age
                this.color = 'yellow'
            }

            // 补全代码
            Chinese.prototype=new Human();
            Human.prototype.getName=function(){
            return this.name
            }
            Chinese.prototype.getAge=function(){
                return this.age
            }
            Chinese.prototype.constructor=Chinese;
        </script>
    </body>
</html>

5. 判断斐波那契数组

描述

请补全JavaScript代码,要求以Boolean的形式返回参数数组是否为斐波那契数列。在数学上,斐波那契数列以如下方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N)
注意:
1. [0,1,1]为最短有效斐波那契数列

作答

1.要求满足斐波那契数列的数组,需要进行判断任意三个数之间满足即可。需要注意的是array的长度要大于3

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        
        <script type="text/javascript">
            const _isFibonacci = array => {
                // 补全代码
                var flag=true;
                if(array.length<3)flag=false;
                for(let i=2;i<array.length;i++){
                    if(array[i-1]+array[i-2]!=array[i]){
                        flag=false;
                    }
                }
                return flag;
            }
        </script>
    </body>
</html>

6.数组扁平化

描述

请补全JavaScript代码,要求将数组参数中的多维数组扩展为一维数组并返回该数组。
注意:
1. 数组参数中仅包含数组类型和数字类型

示例:

输入:
[1,[2,[3,[4]]]]
输出:
[1,2,3,4]

作答

  1. 要求将多维数组扩展为一维数组,需要将数组的括号去除使用递归方法。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        
        <script>
            const _flatten = arr => {
                // 补全代码
                  let result = []
            function flatten(arr) {
                for (let i = 0; i < arr.length; i++) {
                    if (Array.isArray(arr[i])) {
                        flatten(arr[i])
                    } else {
                        result.push(arr[i])
                    }
                }
                
            } 
             flatten(arr);
             return result;
          }
        </script>
    </body>
</html>
  1. 利用ES6新特性中flat方法进行扁平化

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        
        <script>
            const _flatten = arr => {
                // 补全代码
            return arr.flat(Infinity)
          }
        </script>
    </body>
</html>
  1. 利用some方法进行对多维数组的展开

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        
        <script>
            const _flatten = arr => {
                // 补全代
                // some只要还有项是数组类型,就展开一层
                while (arr.some((item) => Array.isArray(item))) {
                    arr=[].concat(...arr)
                }
                return arr
            }          
        </script>
    </body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端VC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值