0

我正在为 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 库来帮助处理这个问题?

4

1 回答 1

0

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

我的方法是:

  • array.map()与回调一起使用

  • 回调应该string.indexOf()用来查找“键”值

  • 回调应string.split()使用分隔符“_”的文件名(不带“键”)并解析拆分的部分以提取属性及其各自的值

于 2013-09-03T00:21:05.260 回答