根据文件名数据创建对象数组

时间:2013-09-03 00:18:57

标签: javascript

我正在为nodeJS服务器编写JavaScript代码,以递归方式获取目录中的文件名并存储在数组中。从那里,根据文件名和目录位置,根据所述数据创建对象并存储在新数组中。

以下是文件名的示例:

var files = [
  'foo001/foo001.jpg',
  'foo001/foo001_blue10_sat22.jpg',
  'bar030/bar030.jpg',
  'bar030/bar030_red31_dpq40_grey10.jpg',
  'baz201/baz201.jpg',
  'baz201/baz201_yellow45.jpg'
];

新数组如下所示:

var fileObjects = [
  {key: 'foo001/foo001.jpg'},
  {key: 'foo001/foo001_blue10_sat22.jpg', blue: 10, sat: 22},
  {key: 'bar030/bar030.jpg'},
  {key: 'bar030/bar030_red31_dpq40_grey10.jpg', red: 31, dpq: 40, grey: 10},
  {key: 'baz201/baz201.jpg'},
  {key: 'baz201/baz201_yellow45.jpg', yellow: 45}
];

解决此问题的最佳方法是什么?这严格来说是一个正则表达式问题吗?或者是否有特定的JS库可以帮助您处理这个问题?

1 个答案:

答案 0 :(得分:0)

如果文件名一致,使用正则表达式就足够了。

我的方法是:

  • array.map()与回调

  • 一起使用
  • 回调应使用string.indexOf()来查找'键'值

  • 回调应该string.split()文件名(不带'key')和分隔符'_'并解析拆分的部分以提取属性及其各自的值