algorithm

作者: 别过经年 | 来源:发表于2020-07-27 23:35 被阅读0次

滑动窗口最大值(239)

1. 枚举多维数组路径
function isObject(value) {
  return Object.prototype.toString.call(value).split(" ")[1] === "Object]";
}

// 枚举出所有路径
function recursion(data) {
  const currentPath = []; //二维数组
  Object.keys(data).forEach((key) => {
    const val = data[key];
    if (isObject(val)) {
      const p = recursion(val);
      p.forEach((x) => {
        currentPath.push([key, ...x]);
      });
    } else {
      currentPath.push([key]);
    }
  });

  return currentPath;
}

测试

const nextData = {
  dd: {
    xx: "ccc",
    ii: { iir: "kiy", ll: 80 },
    scsdc: { fr: { xvdf: "ooo" } },
  },
};

const ret = recursion(nextData);
console.info(ret);

// 输出:
[ [ 'dd', 'xx' ],
  [ 'dd', 'ii', 'iir' ],
  [ 'dd', 'ii', 'll' ],
  [ 'dd', 'scsdc', 'fr', 'xvdf' ] ]

相关文章

网友评论

      本文标题:algorithm

      本文链接:https://www.haomeiwen.com/subject/ktkxrktx.html