Ame
Ame
# 随手记 --- 权限系统中的替换节点问题 > 今天搬砖的时候发现了以前权限系统的一个bug,记录一下 > > 报错信息如下: > > DOMException: Failed to execute 'replaceChild' on 'Node': This node type does not support this method. > > 源码片段如下: >...
# 数组移零 ### 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序 示例: ``` 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] ``` 说明: 1. 必须在原数组上操作,不能拷贝额外的数组。 2. 尽量减少操作次数。 解题: ```javascript function moveZeroToLast(arr) { let index = 0; for (let...
# 只出现一次的数字 ### Round One ! **请听题** 给定一个**非空**整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 **说明:** 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?( 时间复杂度 O(n) ,并且空间复杂度为 O(1) ) **示例 1:** ``` 输入: [2,2,1] 输出: 1 ``` **示例 2:** ``` 输入:...
# JavaScript 数字精度 ### 浮点数运算出现的问题 如果我们运算 `0.1 + 0.2` ,期望的结果当然是 `0.3` 。然而。。。 这个坑只发生在浮点数运算上。(所以放心吧,`1 + 1` 还是等于 `2` 的)。。。 ### 难道我的数学白学了嘛? 你的数学肯定没白学,但是要明白为什么得先学一下计算机是怎么存数字的 首先,所谓 浮点数 就是小数的二进制表示法。(由**符号位,指数位,尾数位** 构成) 其中,指数位体现 取值范围 ,尾数位体现 计算精度。尾数位越多能表示的数就越大,计算精度也越高 浮点数中有...
# 数组去重和数组扁平化 关于数组总喜欢问的问题,一般的笔试题里都会有一道。因为比较初级多见于一面。 ### 数组去重 1. ```javascript Array.prototype.distinct = function () { let arr = [] this.forEach(item => { if (arr.indexof(item) === -1) { arr.push(item) } }) return arr }...
# 给定两个数组,求交集 条件如题 例如:给定 nums1 = [1, 2, 2, 1],nums2 = [2, 2],返回 [2, 2] 给定 nums1 = [1, 1, 1],nums2 = [1],返回 [1] 1. 解法1: ```javascript const intersect =...
# 良心推荐 --> React-Grid-Layout > 最近在做交易所相关的项目,用到的一个非常好用的 React 库。用来做拖拽组件的,先上法王! ![687474703a2f2f692e696d6775722e636f6d2f6f6f314e5436632e676966](https://user-images.githubusercontent.com/16103819/51185880-4a1d0680-1913-11e9-9de4-a13a1d878c3f.gif) (图片来自RGL官方git) (gif 录制自 [BitMEX.com](https://www.bitmex.com/)) ReactGridLayout 的用法非常简单 => 就是和你的其他组件一样使用 :) 但是要记得引入库(npm install react-grid-layout)之后,要也引入相关的样式文件并确保它们都生效啦 ```javascript /node_modules/react-grid-layout/css/styles.css /node_modules/react-resizable/css/styles.css ``` 当然你同时也可以写自己的 class 一个基本的例子: ```react import...
# 求两数之和 ### 题目描述 给定一个整数数组 `nums` 和一个目标值 `target`,请你在该数组中找出和为目标值的那 **两个** 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 **示例:** ```javascript 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 +...
# 简单实现一个发布订阅模式 ```javascript const Pubsub = { handles: {}, on: function (type, handler) { if (!this.handles[type]) { this.handles[type] = [] } this.handles[type].push(handler) }, emit: function () { if (arguments.length ===...
#### 实现一个 `Storage` > 实现Storage,使得该对象为单例,基于 localStorage 进行封装。实现方法 setItem(key,value) 和 getItem(key) 首先,什么是单例模式。。。 ##### 定义 确保一个类仅有一个实例,并提供一个访问它的全局访问点。 ##### 应用场景 比如说线程池,全局缓存等。 `window` 对象就是一个单例。这种只需要一个对象的就用单例模式。 --> 回到题目 1. ES5 ```javascript function StorageSingleton () {} StorageSingleton.prototype.getItem =...