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

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

示例代码

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.2k
1 个回答
  1. indexOf 或者遍历项使用 == 或者 === 也都可以找到
  2. 这个要看深拷贝的实现方式。
    如果 a 和 b 原子项不是数组了,而是 Symbol 或者 function,深拷贝的实现方式也会影响到「能不能找到」以及「如何找到」
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题