站酷整体面下来很累,也很爽。
二面完无后续。HR说最近技术很忙,还没评估,后续会通知。感觉自己表现还可以,蹲一个结果。
发现一个问题,就是我的电脑字体太小,共享屏幕的时候面试官看着都费劲。以后可以适当放大编辑器的字体
10月12日 50min 感觉站酷的面试官可以的
function quickSort(arr) { if (arr.length <= 1) return arr; let length = arr.length; const middleIndex = Math.floor(length / 2); const middle = arr[middleIndex]; const left = [], right = []; for (let i = 0; i < length; i++) { if (i === middleIndex) continue; if (arr[i] > middle) right.push(arr[i]); else left.push(arr[i]); } return [...quickSort(left), middle, ...quickSort(right)]; } console.log(quickSort([1, 4, 2, 8, 5]));
Promise.myRace = function (promises) { return new Promise((resolve, reject) => { promises.forEach((promise) => { promise .then((res) => { resolve(res); }) .catch((e) => { reject(e); }); }); }); };
import { useEffect, useState } from "react"; export function useWindowWidth() { const [width, setWidth] = useState(window.innerWidth); const onWindowResize = () => { setWidth(window.innerWidth); }; useEffect(() => { window.addEventListener("resize", onWindowResize); }, []); return width; }
反问:
二面压力很大,也很爽。50min
面试官说我不回应人家哈哈哈,以后面试注意,活泼一点。
// [1, 3, 4] 5 function func(target, arr) { let map = new Map() let res = [] for (let i = 0; i < arr.length; i++) { let another = target - arr[i] if (map.has(another)) { let index = map.get(another) res.push([i, index]) } else { map.set(arr[i], i) } } console.log(res) } func(4, [1, 3, 4])
下面的代码,有问题。网上的代码并没有区分先后顺序,这是改进后的。但是仍然需要改进什么时候resolve,目前还没有想到完美的方案。
Promise.IAllSettled = (promises) => { let res = new Array(promises.length).fill({}); return new Promise((resolve, reject) => { promises.forEach((promise, i) => { promise.then( (res) => { res[i] = { value: res, status: "fulfilled" }; if (res.length === promises.length) resolve(res); }, (error) => { res[i] = { reason: error, status: "rejected" }; if (res.length === promises.length) resolve(res); } ); }); }); };
反问: