当前位置: 首页 > news >正文

JS算法练习 11.11

leetcode 2619 数组原型对象的最后一个元素

请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1 。

你可以假设数组是 JSON.parse 的输出结果。

示例 1 :

输入:nums = [null, {}, 3]
输出:3
解释:调用 nums.last() 后返回最后一个元素: 3。

示例 2 :

输入:nums = []
输出:-1
解释:因为此数组没有元素,所以应该返回 -1。

太无脑了,下一个

Array.prototype.last = function() {n = this.lengthif(n == 0)return -1else return this[n-1]};

 leetcode 2620 计数器

给定一个整型参数 n,请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值 ( n ,  n + 1 ,  n + 2 ,等等)。

示例 1:

输入:
n = 10 
["call","call","call"]
输出:[10,11,12]
解释:
counter() = 10 // 第一次调用 counter(),返回 n。
counter() = 11 // 返回上次调用的值加 1。
counter() = 12 // 返回上次调用的值加 1。

示例 2:

输入:
n = -2
["call","call","call","call","call"]
输出:[-2,-1,0,1,2]
解释:counter() 最初返回 -2。然后在每个后续调用后增加 1。
var createCounter = function(n) {let count = nreturn function() {return count ++};
};

 虽然这道题无脑的要命,但我们还是回顾一下JS的闭包知识。

闭包的含义:如果一个函数访问了此函数的父级及父级以上的作用域变量,那么这个函数就是一个闭包。

来一个JS闭包小练习

判断一下下面代码的输出

var a = 10
function foo(){console.log(a)
}function bar() {var a = 20foo()
}bar()

答案:10

为什么不是20?

因为JavaScript中的作用域是词法作用域,即函数在定义时就确定了它的作用域,而不是在运行时。因此,foo()函数在定义时的上一级作用域是全局作用域,而不是在bar()函数中的局部作用域。在foo()函数中,并没有定义变量a,因此它会向上一级作用域即全局作用域查找。

 leetcode 2621 睡眠函数

请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。

示例 1:

输入:millis = 100
输出:100
解释:
在 100ms 后此异步函数执行完时返回一个 Promise 对象
let t = Date.now();
sleep(100).then(() => {console.log(Date.now() - t); // 100
});

示例 2:

输入:millis = 200
输出:200
解释:在 200ms 后函数执行完时返回一个 Promise 对象
async function sleep(millis) {return new Promise((resolve) => {setTimeout(()=> {resolve()}, millis)})
}
复习一下Promise用法吧
function fetchData(i) {return new Promise((resolve, reject) => {// 模拟异步操作setTimeout(() => {const data = 'Hello, world!';// 模拟异步操作成功if(i==1)resolve(data);// 模拟异步操作失败if(i==2)reject(new Error('Failed to fetch data.'));}, 200);});}fetchData(1).then((data) => {console.log(data); // 异步操作成功时执行}).catch((error) => {console.error(error); // 异步操作失败时执行}).finally(() => {console.log('Promise has been resolved or rejected.'); // 无论成功失败都会执行});

http://www.lryc.cn/news/225979.html

相关文章:

  • 50代码审计-PHP无框架项目SQL注入挖掘
  • 什么是微服务?与分布式又有什么区别?
  • 案例 | 3D可视化工具HOOPS助力SolidWorks edrawings成功引入AR/VR技术
  • 初识Linux:目录路径
  • 抖音小程序开发:探索技术创新的代码之旅
  • 公司注册股东选择几个人合适?
  • 大数据治理——为业务提供持续的、可度量的价值(二)
  • 前端安全方面有哪些攻击方式?
  • linux的文件属性
  • 电脑指示灯闪烁,但是无法开机的解决方案
  • 【电工基础】
  • 【Word自定义配置,超简单,图文并茂】自定义Word中的默认配置,比如标题大小与颜色(参考科研作图配色),正文字体等
  • 常见排序算法之快速排序
  • ESP32 C3 smartconfig一键配网报错
  • 力扣labuladong——一刷day25
  • 从单体到微服务:使用Spring Boot构建事件驱动的Java应用程序
  • WMS配送中心主要业务流程
  • 《LeetCode力扣练习》代码随想录——数组(螺旋矩阵II---Java)
  • 计算机毕业设计选题推荐-农产品销售微信小程序/安卓APP-项目实战
  • Linux AMH 服务器管理面板远程访问
  • arcsinx的导数
  • 邻接表储存图实现广度优先遍历(C++)
  • 解构赋值详解以及例子
  • Spring Boot 3.0正式发布及新特性解读
  • 【tgowt】更新thirdparty
  • 金字塔原理小节
  • osg点云加载与渲染
  • 后端架构选择:构建安全强大的知识付费小程序平台
  • 第四节(2):修改WORD中表格数据的方案
  • Qt中对Udp数据打包发送和接收