【牛客刷题】前端--JS篇(一)

简介: 【牛客刷题】前端--JS篇(一)

题1:直角三角形

微信图片_20221012220537.png

题解:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <div class='triangle'></div>
        <script>
            var triangle = document.querySelector('.triangle');
            // 补全代码
            var str = ''
            for (var i = 1; i < 4; i++) {
             for (var j = 0; j < i; j++) {
                str += '*'
              }
             str += '<br />'
            }
            triangle.innerHTML = str
        </script>
    </body>
</html>

题2:文件扩展名

微信图片_20221012220750.png


题解:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <script>
         const  _getExFilename = (filename) => {
    let index = filename.lastIndexOf('.')
    return filename.slice(0, index) && index !== -1 ? filename.slice(index) : ''
}
        </script>
    </body>
</html>

题3:单向绑定

微信图片_20221012220709.png

题解:

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
      <input id="input" type="text" />
        <span id="span"></span>
        <script type="text/javascript">
            document.getElementById("input").onchange = function(){
                // dom事件里的函数的this指向触发者,即input标签
                // 注意:这里不能使用箭头函数,因为箭头函数没有this指针,箭头函数的this是根据执行上下文确定的,即这里的this指向window,会报错
                document.getElementById("span").innerHTML = this.value
            }
        </script>
    </body>
</html>

题4:创建数组

微信图片_20221012220820.png

题解:

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        <script type="text/javascript">
            const _createArray = (number) => {
                // 补全代码
                 return Array(number).fill(number)
            }
        </script>
    </body>
</html>

题5:无重复数组

微信图片_20221012220858.png

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <script>
           const _getUniqueNums = (start, end, n) => {
        // set 去重
        const con = new Set()
       // 生成 n 个不重复的随机数
       while (con.size < n) {
         // Math.random 生成 [0, 1) 的数字,可以将 结果 * (end - start) + start 扩大区间, + 1          是为了取到 end
        con.add(Math.floor(Math.random() * (end - start + 1) + start))
   } 
  return [...con]
}
        </script>
    </body>
</html>

题6:数组排序

微信图片_20221012220952.png

题解:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
</head>
<body>
  <button class='up'>销量升序</button>
  <button class='down'>销量降序</button>
  <ul></ul>
  <script>
    var cups = [
      { type: 1, price: 100, color: 'black', sales: 3000, name: '牛客logo马克杯' },
      { type: 2, price: 40, color: 'blue', sales: 1000, name: '无盖星空杯' },
      { type: 4, price: 60, color: 'green', sales: 200, name: '老式茶杯' },
      { type: 3, price: 50, color: 'green', sales: 600, name: '欧式印花杯' }
    ]
    var ul = document.querySelector('ul');
    var upbtn = document.querySelector('.up');
    var downbtn = document.querySelector('.down');
    // 补全代码
    const _listRendering = arr => {
      var str = ''
      arr.forEach(element => {
        str += `<li>${element.name}</li>`
      })
      ul.innerHTML = str
    }
    upbtn.onclick = function () {
      var upArr = cups.sort(function (a, b) {
        return a.sales - b.sales
      })
      _listRendering(upArr)
    }
    downbtn.onclick = function () {
      var downArr = cups.sort(function (a, b) {
        return b.sales - a.sales
      })
      _listRendering(downArr)
    }
  </script>
</body>
</html>

题7:分隔符

微信图片_20221012221031.png

题解:直接在线编译运行结果,十分方便微信图片_20221012221035.png


相关文章
|
8月前
|
JavaScript 前端开发 API
|
8月前
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
299 8
|
8月前
|
JavaScript 前端开发 容器
|
8月前
|
JavaScript 前端开发
|
8月前
|
存储 JavaScript 前端开发
|
8月前
|
移动开发 JavaScript 前端开发
|
9月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
7827 23
|
8月前
|
存储 JavaScript 前端开发
|
8月前
|
JavaScript 前端开发
|
8月前
|
JavaScript 前端开发

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 10
    Javascript 文件命名规范