成熟稳重的好男人 2022-05-04 13:55:09
function getMaxCharacters(str) { const map = {} var arr = str.match(/(w)1+/g) var max = arr[0].length const maxArr = arr.filter(v => v.length === max) maxArr.forEach(v => { map[v] = v.length }) return map }
最终简化版
成熟稳重的好男人 2022-05-04 13:54:20
实现
/** * * @param {Array<() => any>} funcArray * @param {number} limit 最大请求次数 */ export function promiseLimit(funcArray, limit = 5) { return new Promise((resolve) => { let i = funcArray.length >= limit ? limit : funcArray.length const result = [] function execFunc(func) { if (i > funcArray.length) return resolve(result) let p = func() p = p instanceof Promise ? p : Promise.resolve(p) p.then( () => execFunc(funcArray[i++]), () => execFunc(funcArray[i++]) ) result.push(p) } result.concat(funcArray.slice(0, i).map(func => execFunc(func))) }) }
测试
function testPromiseLimit(base) { let a = [] for (let i = 0; i < base; i++) { a.push(() => { console.log(`开始 ${i}`) return new Promise((resolve, reject) => { Math.random() > 0.5 ? setTimeout(() => resolve('success'), i * 500) : setTimeout(() => reject('fail'), i * 500) }) }) } return a } promiseLimit(testPromiseLimit(3)) promiseLimit(testPromiseLimit(5)) promiseLimit(testPromiseLimit(20))
成熟稳重的好男人 2022-05-04 13:54:10
function getIndex(arr) { const min = Math.min(...(arr.filter(i => i > 0))); const index = arr.indexOf(min); return index + ',' + min; } const arr = [10,21,0,-7,35,7,9,23,18]; console.log(getIndex(arr));
成熟稳重的好男人 2022-05-04 13:50:20
@Panzhipeng1 如果传入一组正确的参数给Math.max方法,返回的结果都是"number"类型的,而你这个并没有进行类型转化,两者的结果并不一致。当然这得看实际的需求需不需要进行类型转化,以及“最大”和“最小”是依据什么来判断的。
成熟稳重的好男人 2022-05-04 08:44:17
补充:株连性
如果祖先元素遭遇某祸害,则其子孙孙无一例外也要遭殃,比如:
opacity:0和display:none,若父节点元素应用了opacity:0和display:none,无论其子孙元素如何挣扎都不会再出现在大众视野;
而若父节点元素应用visibility:hidden,子孙元素应用visibility:visible,那么其就会毫无意外的显现出来。
- 共 1 页
- 1
处理中文输入,再加个防抖。如果用数据驱动视图,可以“原地复用”,才是最优解。
第 90 题:实现模糊搜索结果的关键词高亮显示