Javascript 检查当前迭代元素是否是最后一个元素?
我正在遍历一些文件:Javascript 检查当前迭代元素是否是最后一个元素?,javascript,Javascript,我正在遍历一些文件: files.forEach((file) => { fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => { let result = `${data}\n` if (err) { console.log(err) } fs.appendFile("book.txt", result, (err) =&
files.forEach((file) => {
fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => {
let result = `${data}\n`
if (err) {
console.log(err)
}
fs.appendFile("book.txt", result, (err) => {
if (err) {
console.log(err)
} else {
console.log(result)
}
})
})
})
我现在想做的是:
// If this is the last file:
let result = `${data}`
// else:
let result = `${data}\n`
有没有办法检查当前迭代元素是否是最后一个元素?传递给的函数将在第二个参数中使用当前项的索引进行调用。您可以将该索引与数组的长度进行比较并写入:
files.forEach((file, index) => {
if (index == files.length - 1) {
// This is the last file...
}
// [...]
});
你可以用承诺和承诺
var promisify = require("promisify-node");
var fs = promisify("fs");
Promise.all(files.map((file) => {
return fs.readFile(__dirname + `/${input}/` + file, 'utf8')
})).then((data) => {
var result = data.join('\n')
return fs.appendFile("book.txt", result);
}).then((result) => {
console.log(result)
}, (err) => {
console.log(err)
});