从Javascript中的嵌套对象创建字符串路径

菲利浦夫

我正在尝试将代表我的文件系统的嵌套对象转换为代表每个文件夹和文件的文件路径的字符串数组。

输入:

let obj = {
  'app': {
    'body': {
      'abs': {
        'muscles.txt': 1
      },
      'foot.js': 1,
      'hand.txt': 1,
      'leg.txt': 1
    },
    'cat.txt': 1,
    'dog.js': 1,
    'writing': {
      'pen.txt': 1,
      'phone.txt': 1
    }
  }
};

输出:

  [
  '/app', 
  '/app/body',
  '/app/body/abs/',
  '/app/body/abs/muscles.txt',
  '/app/body/foot.js',
  '/app/body/hand.txt',
  ...
]

到目前为止,我所拥有的(它不起作用):

function filePaths(obj, oldKey = '', store = []) {
  for (let key in obj) {
    if (typeof obj[key] === 'object') {
      store.push('/' + key);
      filePaths(obj[key], key, store);
    } else {
      store.push('/' + oldKey + '/' + key);
    }
  }
  return store;
}

filePaths(obj);
除夕夜

这是一个工作版本:

let obj = {
  'app': {
    'body': {
      'abs': {
        'muscles.txt': 1
      },
      'foot.js': 1,
      'hand.txt': 1,
      'leg.txt': 1
    },
    'cat.txt': 1,
    'dog.js': 1,
    'writing': {
      'pen.txt': 1,
      'phone.txt': 1
    }
  }
};

function filePaths(obj, prefix = '', store = []) {
  for (let key in obj) {
    const curPath = `${prefix}/${key}`;
    if (typeof obj[key] === 'object') {
      store.push(curPath);      
      filePaths(obj[key], curPath, store);
    } else {
      store.push(curPath);      
    }
  }
  return store;
}

console.log(filePaths(obj));

因此,我保留了大多数代码,但更改了以下事实:在您保留“旧”键的同时,我保留了当前路径,它用作所有文件的前缀和所有将要获取文件的目录的前缀。当前密钥已附加。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据Javascript中的查询字符串创建嵌套对象

从多个字符串路径创建嵌套对象

使用字符串中的路径引用/设置嵌套的 XML 对象属性 - JavaScript

从字符串数组创建嵌套的 Javascript 对象

如何从像“abcd”这样的文本字符串在javascript中创建动态嵌套对象?

通过字符串路径访问嵌套的JavaScript对象和Aray

JavaScript - 从字符串中的函数定义创建函数对象

如何从JavaScript中的字符串创建日期对象

从 JavaScript 中的字符串数组创建分组对象

用JavaScript在字符串中创建对象

嵌套对象中的最长字符串

从具有多个字符串的对象创建嵌套对象,javascript

Typescript类型对象嵌套路径字符串

通过字符串键/路径生成嵌套对象结构

通过字符串路径设置嵌套对象属性

使用javascript从字符串创建对象

Javascript从字符串创建类对象

从字符串创建JavaScript对象

从嵌套对象创建字符串并引用父键

从平面字符串数组创建嵌套树对象

java:从字符串创建嵌套的json对象

C#使用字符串数组中的嵌套对象动态创建JSON

从路径创建字符串

如何在Javascript中将字符串附加到对象“路径”中?

根据字符串路径动态搭建JavaScript对象

在PowerShell中的函数中从字符串创建路径

将复杂的嵌套用户定义对象序列化为javascript中的字符串

基于字符串变量访问嵌套的javascript对象

Javascript:嵌套对象引用的点符号字符串