2

我有这个脚本:

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'

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

4

1 回答 1

2
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 的回调而受到影响,因为它是一个阻塞循环结构 IIRC。如果确实引起了麻烦,您可能必须在那里使用常规的 for 循环。

再想一想,为什么不能直接加入文件?像这样

console.log("'"+files.join("', '")+"'");
于 2016-02-08T21:04:32.620 回答