Вот обновленный код, который считывает все содержимое в подфайлах, возвращает все целые числа в одном массиве и возвращает сумму всех элементов в массиве:
const fs = require('fs')
let output = (file) => {
let data = fs.readFileSync(file, 'utf8')
.split('\n')
.reduce((array, i) => {
if (i.match(/.txt$/)) {
let intArr = array.concat(output(i))
return intArr
} else if (i.match(/^\d+$/)) {
array.push(parseInt(i, 10));
}
return array;
}, [])
return data
}
console.log(output('a.txt')) // single array
const sum = output('a.txt')
console.log(sum.reduce((a, b) => a + b, 0)) // sum of array contents
Я пытаюсь получить результат следующего кода в одном массиве, чтобы я мог получить сумму всех чисел. Учтите, что содержимое файла a.txt
равно
1
b.txt
содержание b.txt
2
c.txt
и содержимое c.txt
равно
3
Код выглядит следующим образом:
const fs = require('fs')
let output = (file) => {
let data = fs.readFileSync(file, 'utf8')
.split('\n')
.map((i) => {
return i
})
let subData = data
.filter(value => /.txt$/.test(value))
.map((i) => {
output(i)
return i
})
let intData = data
.filter(value => /^\d+$/.test(value))
.map((i) => {
return parseInt(i, 10)
})
console.log(intData)
}
output('a.txt')
Это выводит:
[3]
[2]
[1]
Какой самый лучший способ получить сумму этих чисел?