【牛客刷题】前端--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


相关文章
|
3天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
5天前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
19 4
|
15天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
14天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
24 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
19天前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
28 1
|
20天前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
17 1
|
23天前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
26 1
|
30天前
|
前端开发 JavaScript 安全
JavaScript前端开发技术
JavaScript(简称JS)是一种广泛使用的脚本语言,特别在前端开发领域,它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用(SPA),JavaScript都扮演着不可或缺的角色。
20 3
|
1月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
133 2
|
1月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
43 0
下一篇
无影云桌面