题目描述解题思路使用Map数据结构键存储元素,值存储出现的次数只要出现重复,直接返回实现代码var findRepeatNumber = function(nums) { const m = new Map(); for (let v of nums) { if (m.has(v)) { return v; } else { m.set(v,1); } }};...
1:给项目安装axiosnpm install axios2:导入axios工具包import axios from 'axios';3:给React脚手架添加中间代理实现跨域(方法一)在项目的package.json文件中添加下面的一句话将请求修改为React脚手架对应的端口注意事项:并不是配置了代理,所有的请求都会通过代理,而是本地端口没有的请求才会询问代理端口。4:给React脚手架实现跨域请求(方法二)配置多个代理在src文件中添加setupProxy.js文件
出现这个问题的原因,是因为你的博客中出现下面的内容这样的内容,无论在标题中还是正文中都不允许出现
代码如下str = str.split('').reverse().join('')
使用toFixed方法
题目描述解题思路使用哈希Map的键存放数组的元素使用哈希Map的值存放该元素出现的次数找出出现次数大于长度一半的元素,返回即可实现代码var majorityElement = function(nums) { // 存储数组的长度的一半 let len = nums.length/2; const m = new Map(); for (let v of nums) { if (m.has(v)) { m.set(v
问题描述问题原因React发现了带下划线的组件命名,将带下划线的组件命名改为驼峰命名即可
题目描述解题思路本题采用两个递归互相调用的方式进行求解一个树是否是另一个树的子结构,有3种情况情况一:子树和当前节点完全一致情况二:子树在左子树中情况三:子树在右子树中第一个递归用于控制发生的是哪一种情况第二个递归则用于进行遍历,如果A树为空,说明A数遍历完了都没有匹配到,说明B树不是子树,如果B树为空,说明B树遍历完了,说明B树是子树,如果A和B的值不相同,则返回false,此时也许会有疑问,那万一子结构在树的深部岂不是直接返回false了?这是第一个递归就开始发挥作用了。本题的难点
实现效果入口文件index.jsimport React from 'react';import ReactDOM from 'react-dom';import App from './App';import store from './redux/store'ReactDOM.render(<App store={store}/>,document.querySelector('#root'))store.subscribe(() => { ReactDOM
题目描述解题思路本题采用哈希表 + 滑动窗口的思路哈希表用来存储每个字符出现的次数,当单个字符出现2次的时候,用以辅助我们移动滑动窗口首先定义一个左右指针,左指针和右指针初始时指向0,右指针不断右移作为判断循环的条件,当右指针移动到字符串长度的位置时,结束循环。具体过程看注释,注释很详细解题代码(模拟队列)var lengthOfLongestSubstring = function (s) { // !本题采用滑动窗口 + 哈希表的方法解决 // 定义滑动窗口,这个滑动
题目描述解题思路(路径循环法)去掉字符串两侧空格以空格为基础分割,分割之后过滤掉中间的空格将数组反转之后再连接即可解题代码var reverseWords = function(s) { // 去掉字符串两侧空格 s = s.trim(); // 以空格为基础分割,分割之后过滤掉中间的空格 const temp = s.split(' ').filter(value => value !== '') // 将数组反转之后再连接即可 re
题目描述解题思路(路径循环法)所谓的路径循环,就是路径本身存在一种循环,就是每一次顺时针是一次循环,每循环完一条边,就要修改想对应的边界条件,直到循环遍历完所有的节点。所谓一图胜千言,有时候很多描述不如一张图片来的清晰易懂。具体的思路来源于下面的这个题解题解解题代码var spiralOrder = function(matrix) { // !解题核心:本题存在一个路径上的循环: // 循环(左 ——> 右,上 ——> 下,右 ——> 左,下 ——&
题目描述解题思路本题采用的DFS + 剪枝首先通过循环遍历二维数组,找到第一个和字符串的元素相同的元素,然后使用DFS开始遍历,知道遍历到字符串的最后一个元素都相同,则返回true,反之则返回false剪枝的作用在于在进行DFS遍历的时候,防止重复遍历解题代码var exist = function(board, word) { // ! 本题采用深度优先搜索DFS的算法思想 // 记录二维数组的行数 const row = board.length; /
题目描述解题思路本题采用的二分的思想本题关键是使用二分查找找出中位数的下标和元素值的关系解题代码var missingNumber = function(nums) { // !本题采用二分法的思想 // 定义左指针 let left = 0; // 定义右指针 let right = nums.length - 1; if (nums[right] !== nums.length) return nums.length; if (nu
地址云猫转码效果图
一、设置状态码的意义HTTP协议是在web浏览器和服务器之间进行传递信息的协议,HTTP协议中设置状态码的意义在于,服务器端通过状态码来高速浏览器端,当前的网页请求发生了什么以及当前WEB服务器的相应状态,HTTP状态码可以用来判断当前服务器端的的运行状况以及浏览器端网页的请求情况。二、常用的HTTP状态码分类1XX (服务器端接收请求,正在处理)场景介绍:假如浏览器端想给服务器发送一个较大的文件,如果服务器端给浏览器端返回的是1XX的状态码,则表示服务器端已经接收到了请求,正在处理。
1. 安装工具包npm install react-router-dom2. 引入路由器、路由、Switch等import {BrowserRouter,Route,Switch} from 'react-router-dom'import Admin from './pages/admin';import Login from './pages/login';export default class App extends Component { render() {
1. 执行async函数返回的都是Promise对象return的只要不是promise对象,那么返回的则是成功的promise对象async函数返回的是error,那么返回的是失败的Promiseasync函数返回的是promise对象,则根据这个对象的状态来决定Promise的状态2. Promise.then成功的情况下对应await3. Promise.catch异常的情况对应 async中的try catch4. async/await更符合同步语义,容易理解,使得异步代码更像
一、安装antdnpm install antd二、实现antd的按需打包为什么要实现按需打包?因为直接引入antd,会引入很多我们不需要的包,造成空间上的浪费。引入相关工具包npm install react-app-rewired customize-cra babel-plugin-import在项目根目录下创建一个配置文件(config-overrides.js)const { override, fixBabelImports } = require('cus
功能快捷键快速打开新标签页T快速滚动到底GG快速滚动到顶部gg向下滑动j向上滚动k调出页面链接或按钮的按键f搜索标签b搜索urlo
31. 当点击按钮时,event.target是什么?<div onclick="console.log('first div')"> <div onclick="console.log('second div')"> <button onclick="console.log('button')"> Click! </button> </div></div>答:C,触发事件的对象的引用是b
1. 输出是什么?function sayHi() { console.log(name) console.log(age) var name = 'Lydia' let age = 21}sayHi()答案是:undefined和报错因为var 定义的变量具有变量提升的效果,但是仅仅是变量声明的提升,并未进行赋值,所以是undefined,let定义的变量不具备变量提升的效果,所以是报错的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6
题目描述解题思路本题采用双指针 + 哈希表的方式解决问题。最大值是通过不断更新出来的。右指针移动到字符串的最后一个元素循环结束。循环体中首先判断右指针指向的元素是否出现在哈希表中,如果出现了,对应的值+1,反之赋值为1.哈希表存在的意义就是为了辅助我们的左指针的移动,当右指针的元素出现的次数大于2,此时说明重复了,我们要不断移动左指针,直到右指针重复的这个元素不重复为止,移动左指针之前还要将左指针指向的这个元素的哈希值-1,防止后面出现了同样的元素最后右指针右移,然后不断比较res和rig
区别1:splice方法会对原数组产生修改,slice方法不会区别2:splice的第二个参数代表的是个数,但是slice的第二个参数代表的是区间(包含左边不包含右边)
安装流程npm i -g create-react-appcreate-react-app react_staging (名字可以自己起)npm start (开启项目)
题目描述解题思路使用DFS的遍历思想进行遍历二叉树如果为空节点或p节点或q节点,直接返回该节点遍历的时候,看返回值,如果p和q都存在就返回当前的root节点,如果只有一个存在就反返回不为空的节点。实现代码var lowestCommonAncestor = function(root, p, q) { if (root === null || root === p || root === q) { return root; } let x = lo
题目描述解题思路使用left和right两个变量来代替滑动窗口的左边界和右边界。核心while循环的条件是:只要左边界 小于 目标值的一半就要进入循环,只要不小于循环结束,说明此时已经找到完了。定义temp变量,用来存放滑动窗口中的所有元素的和。当temp小于target的值的时候,右边界向右扩一个。当temp大于target的时候,左边向右一个实现代码var findContinuousSequence = function(target) { let left = 1;
题目描述解题思路(数学规律)本题主要是寻找数学规律,通过暴力的方法肯定是超时的,下面就简单介绍下本题的解题思路,我认为核心还是在于理解将字符串拆分为不同位数的区间。首先判断n在哪一个区间,区间的划分按照 1 - 9,10-99,100-999…计算下标n在当前区间的哪一个求出n下标对应的真实的数字求出该真实数字的哪一位是我们最终要返回的结果公式n下标对应的真实数字=区间起始值+(区间第几个−1)/第几个区间n下标对应的真实数字 = 区间起始值 + (区间第几个 - 1) / 第几
链表的基本形式遍历链表遍历链表前先让一个指针指向头结点链表中插入元素删除元素
Link的形式路由无需声明,自动接收通过querystring库将查询字符转换为对象解构赋值,并将查询字符的问号去掉
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号