摘星┃星的人 2022-05-04 13:50:18
function f(x){ return g(x); } // 非尾调用 function f(x){ return g(x) + 1; }
谁能帮我解释下这俩的执行上下文栈有啥区别么
摘星┃星的人 2022-05-04 13:34:48
我起的早, 我先来吧
受思维惯性, 以为是求连续, 好吧, 修改了一波
function formArray(arr: any[]) {
const sortedArr = Array.from(new Set(arr)).sort((a, b) => a - b);
const map = new Map();
sortedArr.forEach((v) => {
const key = Math.floor(v / 10);
const group = map.get(key) || [];
group.push(v);
map.set(key, group);
});
return [...map.values()];
}
// 求连续的版本
function formArray1(arr: any[]) {
const sortedArr = Array.from(new Set(arr)).sort((a, b) => a - b);
return sortedArr.reduce((acc, cur) => {
const lastArr = acc.slice().pop() || [];
const lastVal = lastArr.slice().pop();
if (lastVal!=null && cur-lastVal === 1) {
lastArr.push(cur);
} else {
acc.push([cur]);
}
return acc;
}, []);
}
function genNumArray(num: number, base = 100) {
return Array.from({length: num}, () => Math.floor(Math.random()*base));
}
const arr = genNumArray(10, 20); //[2, 10, 3, 4, 5, 11, 10, 11, 20];
const res = formArray(arr);
console.log(`res ${JSON.stringify(res)}`);
- 共 1 页
- 1
主调用栈流程:
所以打印顺序为
第 10 题:常见异步笔试题,请写出代码的运行结果