运行 Object.keys 在对象中包含嵌套值

Run Object.keys to include nested values in an object

说我有对象...

myObject = {
  prop1: 'someValue',
  prop2: {
     subProp1: 'nestedValue',
     supProp2: {
        superNestedProp: 'superNestedValue'
     }
  }
}

如何 运行 一个函数 return 所有键,包括嵌套键?

示例输出:

[prop1, prop2, subProp1, subProp2, superNestedProp]

您可以构建一个递归函数,在其中您可以使用 flatMapObject.entries 来获得预期的输出:

const myObject = { prop1: 'someValue', prop2: { subProp1: 'nestedValue', supProp2: { superNestedProp: 'superNestedValue' } }};

const getProps = obj => Object.entries(obj).flatMap(([k,v])=>typeof v=="object" ? [k,...getProps(v)] : k);

console.log(getProps(myObject));