现已知下面的 createPlayer 函数的实现不完整且有错误 请你把这个函数的代码补充完整, 并解决所有的错误 使最下面的测试用例, 能够按照注释, 输出正确的结果
function createPlayer(totalDuration) {
let currentTimer = 0;
const listener = [];
const nextTimeout = (callback) => {
setTimeout(() => {
const ret = callback();
if (callback === false) return;
nextTimeout(callback);
}, 1000);
};
const playing = () => {
currentTimer = currentTimer + 1000;
listener.forEach((fn) => {
fn(Math.floor(currentTimer / totalDuration) * 100);
});
return currentTimer < totalDuration;
};
return {
play() {
// write code here
},
on(callback) {
listener.push(callback);
},
pause() {
// write code here
},
stop() {
currentTimer = 0;
}
};
}
// 使下面的测试代码按要求输出结果
const player = createPlayer(10 * 1000); // 播放 10s 的歌曲
let start = Date.now();
let getTimeSpan = () => Math.floor((Date.now() - start) / 1000);
player.on((progress) => {
console.log(`${getTimeSpan()}s: ${progress}%`);
});
player.play();
setTimeout(() => {
player.pause();
}, 2000);
setTimeout(() => {
player.play();
}, 4000);
setTimeout(() => {
player.stop();
}, 6000);
// output
// 开始后,输出: 0s: 0%
// 1s 后,输出: 1s: 10%
// 2s 后,输出: 2s: 20%
// 3s 后,没有任何输出
// 4s 后,输出: 4s: 20%
// 5s 后,输出: 5s: 30%
// 6s 后,输出: 6s: 0%
问: 部门的业务场景
答: 店家管理 + 达人管理 + 判罚机制 + 将 AI(如 ChatGPT)引入到本地生活业务
问: 快手和美团, 字节这些玩家相比, 在做本地生活业务方面有哪些优势?
答: (面试官再反问一波)美团的本地生活业务护城河很深吗? 他们有流量优势吗?
问: 前端未来发展方向
答: ChatGPT 在将来很可能会颠覆传统软件开发的模型, 以后很可能再也没有需求评审, UI 对接, 前后端接口协商的环节, 前端很多基建设施也会被颠覆, 因为 AI 生成前端代码不需要脚手架/组件库这些东西
假设要给一个 20 人的部门做一个抽奖程序. 输入一个员工列表和中奖人数, 要求每执行一次抽奖, 就把员工列表打散随机分布一次, 然后每秒输出一个中奖人, 直到抽奖完毕
比较神奇的是, 一面和二面都是只问一道代码题, 其他时候就是聊天
#软件开发2023笔面经##快手##前端##面经#结果: HR 面挂了. 同学说快手今年池子深, 平均 3:1 捞人