当前位置: 首页 > news >正文

while-经典面试题实战

1、while 实现数组扁平化

function flatten(arr) {
  const result = [];
  const stack = [...arr];
  
  while (stack.length) {
    const next = stack.pop();
    if (Array.isArray(next)) {
      stack.push(...next);
    } else {
      result.unshift(next);
    }
  }
  return result;
}

console.log(flatten([1, [2, [3]]])); // [1, 2, 3]

2、链表遍历(数据结构操作)

class Node {
  constructor(val) {
    this.val = val;
    this.next = null;
  }
}

let head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);

let current = head;
while (current) {
  console.log(current.val); // 1 → 2 → 3
  current = current.next;
}

总结:while 循环在以下场景更具优势:

1、需要根据动态条件持续操作(如游戏循环、网络请求重试)
2、处理非线性的数据遍历(如树/图结构)
3、需要手动控制迭代进度的复杂逻辑
合理使用 while 能让代码更灵活,但要始终注意循环安全和性能影响。

相关文章:

  • c++ 类成员指针及其与`std::bind`交互使用的简单说明
  • 使用 Docker 部署 BaGet 并推送 NuGet 包
  • 前端小食堂 | Day10 - 前端路由の时空裂隙
  • Java是值传递还是引用传递
  • 特征选择之特征重要性排序(基于树模型)
  • 如何用Kimi生成PPT?秒出PPT更高效!
  • 学习threejs,Animation、Core、CustomBlendingEquation、Renderer常量汇总
  • Java 依赖冲突终极解法:Maven 依赖树分析与强制版本锁定
  • 最左侧冗余覆盖子串
  • 【接口封装】——18、添加目录项列表响应
  • AMD(xilinx) FPGA书籍推荐
  • RabittMQ保证消息不丢失的几种手段
  • Spring Boot 项目中慢SQL优化方案
  • 基于微信小程序的超市购物系统+论文源码调试讲解
  • 【文心索引】搜索引擎测试报告
  • 【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率
  • Trae IDE新建C#工程
  • 双目立体视觉(6.1)测距
  • 2025年科技趋势深度解析:从“人工智能+”到量子跃迁的技术革命
  • 练习题:72
  • 寿光做网站m0536/河北网络科技有限公司
  • wordpress 漫画网站/济南seo官网优化
  • 忻州网站建设网站推广/杭州seo排名收费
  • 网站建设经费/google海外推广
  • 哪个网站做视频钱多/在线网站seo诊断
  • 个人网站备案模板/市场监督管理局职责范围