在Node.js glob结果中连接数组的循环

我有这个脚本:

var glob = require('glob'); glob('*.jpg', { cwd: 'public/portfolio/weddings/', sort: true }, function (err, files) { var globResults = files; globResults.forEach(function(entry) { var results = '\'' + entry + '\''; console.log(results.join(',')); }); }) 

join(',')不起作用,导致脚本失败。 没有它的实际输出:

 'image-1.jpg' 'image-10.jpg' 'image-11.jpg' 'image-12.jpg' 'image-13.jpg' 'image-14.jpg' 'image-15.jpg' 'image-16.jpg' 'image-17.jpg' 'image-18.jpg' 'image-19.jpg' 

预期产出:

 'image-1.jpg', 'image-10.jpg', 'image-11.jpg', 'image-12.jpg', 'image-13.jpg', 'image-14.jpg', 'image-15.jpg', 'image-16.jpg', 'image-17.jpg', 'image-18.jpg', 'image-19.jpg' 

后来我想在一个数组的循环中调用这个输出。

 var glob = require('glob'); glob('*.jpg', { cwd: 'public/portfolio/weddings/', sort: true }, function (err, files) { var globResults = files, results = []; globResults.forEach(function(entry) { results.push('\'' + entry + '\''); }); console.log(results.join(',')); }) 

这是你在找什么? 日志不应该因forEach的callback而受到影响,因为它是一个阻塞循环结构IIRC。 如果确实会造成麻烦,那么您可能需要在这里使用常规循环。

再想一想为什么你不能直接join文件? 喜欢这个

 console.log("'"+files.join("', '")+"'");