且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

查找嵌套对象中的最小值和最大值

更新时间:2023-02-26 20:38:58

将你的链表扁平化成数组后,你可以使用 Array.prototype.reduce() 带有一个 min 和 max,分别从 Infinity-Infinity 的初始值开始,以匹配 Math.min()Math.max():

After flattening your linked list into an array, you can use Array.prototype.reduce() with an accumulator that is a tuple of min and max, starting with initial values of Infinity and -Infinity respectively to match the implementations of Math.min() and Math.max():

const object = {
  value: 1,
  children: {
    value: 10,
    children: {
      value: 2,
      children: {
        value: 5,
        children: null
      }
    }
  }
}

const flat = o => o == null || o.value == null ? [] : [o.value, ...flat(o.children)]
const [min, max] = flat(object).reduce(
  ([min, max], value) => [Math.min(min, value), Math.max(max, value)],
  [Infinity, -Infinity]
)

console.log(min, max)