我正在为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库可以帮助您处理这个问题?
答案 0 :(得分:0)
如果文件名一致,使用正则表达式就足够了。
我的方法是:
将array.map()
与回调
回调应使用string.indexOf()
来查找'键'值
回调应该string.split()
文件名(不带'key')和分隔符'_'并解析拆分的部分以提取属性及其各自的值