yaodongyi
yaodongyi
```javascript let list = [{ id: 1, name: "广东省", children: [ { id: 11, name: "深圳市", children: [ { id: 111, name: "南山区", children: [ { id: 110, name: "沙河派出所",...
```javascript // 为啥不用,项目开发中难道现成的不用,还写一堆自拟定API?表示无法理解。 function searchIndex(S, T, num = 0) { return S.match(new RegExp(T, 'g')).map((_, i) => { return (num = S.indexOf(T, num + 1)); }); } console.log(searchIndex('Hello World', 'o')); ```
> > 变量生命周期:声明(作用域注册一个变量)、初始化(分配内存,初始化为undefined)、赋值 > > * var:遇到有var的作用域,**在任何语句执行前都已经完成了声明和初始化**,也就是变量提升而且拿到undefined的原因由来 > * function: 声明、初始化、赋值一开始就全部完成,所以函数的变量提升优先级更高 > * let:解析器进入一个块级作用域,发现let关键字,变量只是先完成**声明**,并没有到**初始化**那一步。此时如果在此作用域提前访问,则报错xx is not defined,这就是暂时性死区的由来。等到解析到有let那一行的时候,才会进入**初始化**阶段。如果let的那一行是赋值操作,则初始化和赋值同时进行 > * const、class都是同let一样的道理 > > 比如解析如下代码步骤: > > ```js > { > //没用的第一行...
```javascript /** * 用 JavaScript 写一个函数,输入 int 型,返回整数逆序后的字符串。如:输入整型 1234,返回字符串“4321”。要求必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。 * @param {Number} num * @returns {String} */ function reverse(num) { let arr = Number.isInteger(num) ? ['', num.toString()] : num; if...
数组会根据length来进行push操作。例如以上的obj会根据length==2 来更新下标,也就是push会从2(length==2,意味着在[0,1,***]后添加)开始 然而下标值又是key值,所以会把key值为2,3的value替换成1,2
```javascript function rotate(arr, k) { Array.from({ length: k }).map(() => arr.unshift(arr.pop())); return arr; } rotate(arr, k); ```
**大数据量列表渲染的时候,比如点餐,外卖,电商分类列表等**。当数据量达到一定程度且每条数据里面的都有对应的效果和图片以及操作等等。这时候上下拉的时候就会出现延迟,甚至点击无反应。 这时候就是前端(浏览器)渲染的性能瓶颈了。 当然解决的方式可以把数据切块,分块进行加载,加载到某一块的时候取某一块的数据,其他的隐藏,这样则可以解决大数据列表的问题。 为了体验好,可以把渲染区域上下两屏的数据都渲染出来,以防出现空白。
> `filter()`会生成新数组,`split()` 也会生成新数组,都不是从原数组中进行操作。`sort()`无法保证排序的时间和空间复杂性~,怎么感觉这么~~~ ```javascript let n = 0; for (var i = 0; i < arr.length - n; i++) { if (arr[i] === 0) { arr.push(Number(arr.splice(i, 1))) n++ i-- }...
> 利用indexOf不需要遍历数组 > > function moveZero(arr){ > let zeroCount = 0; > 让findIndex = 0; > var index; > while(index = arr.indexOf(0,findIndex),index!== - 1){ > arr.splice(index,1); > zeroCount ++; >...
```javascript /* * @Date: 2020-01-28 14:03:47 * @LastEditTime : 2020-01-28 17:53:56 * @Description: 输入 '1, 2, 3, 3, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 110, 111,...