Соединение цикла массивов в результатах глобуса Node.js

У меня есть этот скрипт:

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'

Позже я хочу вызвать этот вывод в цикле массива.

1 ответ

Решение
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("', '")+"'");
Другие вопросы по тегам