ascoders / weekly

前端精读周刊。帮你理解最前沿、实用的技术。
28.6k stars 3.24k forks source link

精读《ObjectEntries, Shift, Reverse...》 #431

Closed ascoders closed 2 years ago

ascoders commented 2 years ago

精读 type-challenges Medium 41~48 题。


精读《ObjectEntries, Shift, Reverse...》

waitingsong commented 2 years ago

Shift 解法不满足空数组(元组)场景

type Result = Shift<[3, 2, 1]> // [2, 1]   // 满足
type Result = Shift<[]> // never , 不满足 js 实际的处理结果 []
type Result = Shift<unknown[]> // never 不符合预期
type Result = Shift<any[]> // never 不符合预期

改进解法

Henry-Diasa commented 2 years ago

inorderTraversal 这个题目 首先回忆一下二叉树中序遍历 JS 版的实现:

function inorderTraversal(tree) {
  if (!tree) return []
  return [
    ...inorderTraversal(tree.left),
    res.push(val),
    ...inorderTraversal(tree.right)
  ]
}

感觉这个位置JS实现的中序遍历不严谨,当然大概意思是都可以看懂的。