JavaScript-Algorithms icon indicating copy to clipboard operation
JavaScript-Algorithms copied to clipboard

基础理论+JS框架应用+实践,从0到1构建整个前端算法体系

Results 112 JavaScript-Algorithms issues
Sort by recently updated
recently updated
newest added

给定一个整数数组 `nums` 和一个目标值 `target` ,请你在该数组中找出和为目标值的那 **两个** 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 **示例:** ```js 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9...

LeetCode
字节

给你两个有序整数数组 `nums1` 和 `nums2`,请你将 `nums2` 合并到 `nums1` 中,使 `num1` 成为一个有序数组。 说明: 初始化 `nums1` 和 `nums2` 的元素数量分别为 `m` 和 `n` 。 你可以假设 `nums1` 有足够的空间(空间大小大于或等于 `m + n` )来保存 `nums2` 中的元素。 **示例:**...

腾讯
LeetCode
字节

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? **注意:** 给定 n 是一个正整数。 **示例 1:** ```js 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶...

腾讯
LeetCode
字节

[axios](https://github.com/axios/axios) 是目前最常用的 http 请求库,可以用于浏览器和 node.js 。 axios 的主要特性包括: - 基于 Promise - 支持浏览器和 node.js - 可拦截请求与响应 - 可转换请求与响应数据 - 请求可以取消 - 自动转换 JSON 数据 - 客户端支持防范 XSRF - 支持各主流浏览器及 IE8+...

手写源码

`indexOf` 有两种: > String.prototype.indexOf() 返回从 `fromIndex` 处开始搜索第一次出现的指定值的索引,如果未找到,返回 `-1` ```js str.indexOf(searchValue [, fromIndex]) // fromIndex 默认值为 0 ``` > Array.prototype.indexOf() 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 `-1` ```js arr.indexOf(searchElement[, fromIndex]) ``` #### 解答 ##### String.prototype.indexOf() **解题思路:正则,字符串匹配**...

编程题

**new 运算符**创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。**new** 关键字会进行如下的操作: 1. 创建一个空的简单JavaScript对象(即`{}`); 2. 链接该对象(即设置该对象的构造函数)到另一个对象 ; 3. 将步骤1新创建的对象作为`this`的上下文 ; 4. 如果该函数没有返回对象,则返回`this`。 **代码实现:** ```js function new_object() { // 创建一个空的对象 let obj = new Object() // 获得构造函数 let Con =...

字节
手写源码

```js // 编写一个算法解析以下符号,转换为json树的结构 let str = `` ```

美团

```js class EventEmitter { constructor() { // 初始值为空对象 this.listeners = Object.create(null) } // 注册事件 on = (event, listener) => { // this.bindEvent(event, listener, false) if (!event || !listener) { return...

手写源码

`debounce` 与 `throttle` 是开发中常用的高阶函数,作用都是为了防止函数被高频调用,换句话说就是,用来控制某个函数在一定时间内执行多少次。 ### 使用场景 比如绑定响应鼠标移动、窗口大小调整、滚屏等事件时,绑定的函数触发的频率会很频繁。若稍处理函数微复杂,需要较多的运算执行时间和资源,往往会出现延迟,甚至导致假死或者卡顿感。为了优化性能,这时就很有必要使用 `debounce` 或 `throttle` 了。 ### `debounce` 与 `throttle` 区别 防抖 (**debounce**) :多次触发,只在最后**一次触发**时,执行目标函数。 节流(**throttle**):限制目标函数调用的**频率**,比如:1s内不能调用2次。 ### 手写一个 `throttle` 实现方案有以下两种: - 第一种是用时间戳来判断是否已到执行时间,记录上次执行的时间戳,然后每次触发事件执行回调,回调中判断当前时间戳距离上次执行时间戳的间隔是否已经达到时间差(Xms) ,如果是则执行,并更新上次执行的时间戳,如此循环。 - 第二种方法是使用定时器,比如当 `scroll`...

手写源码