[面试题] 通过原型/继承相关知识区分特殊数组?

作者站长头像
站长
· 阅读数 14

今天小伙伴遇到这样的一个十分有槽点的面试题,想了解看看大家有什么解答思路吗?

示例代码

const a = [1, 2];
const b = [[1, 2], [1, 2], [1, 2], [1, 2], [1, 2]]
const index = Math.floor(Math.random() * 4) + 1;

b.splice(index, 0, a);

问题

  1. 如何在 b 中找到 a
  2. 如果 b 经过深拷贝后又如何找到 a

要求

ab 的结构不能发生改变。

提示

  1. 通过原型/继承相关知识区分特殊数组。
  2. index 不可知。

虽然我知道这种题十分有槽点,但还是请大家请勿吐槽 /dog。

回复
1个回答
avatar
test
2024-07-20
  1. indexOf 或者遍历项使用 == 或者 === 也都可以找到
  2. 这个要看深拷贝的实现方式。 如果 a 和 b 原子项不是数组了,而是 Symbol 或者 function,深拷贝的实现方式也会影响到「能不能找到」以及「如何找到」
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容