Node.js奇数计数错误

时间:2017-09-01 16:45:57

标签: javascript node.js

创建文件名big.file和存储值

const fs = require('fs');
const file = fscreateWriteStream('./big.file');

for(let i=0; i<= 2; i++) {
  file.write('1\r\n2\r\n3\r\n');
}
file.end()

我读了这个文件,我试图找到oddnumbers的数量

const file2 = fs.readFile('./big.file','utf8', (err,lines) = {
 if(err) throw err;
 console.log(lines);
 const numbers = lines.map(Number);
 const oddNumbers = numbers.filte(n => n%2 ===1);
 console.log('odd number count:', oddNumbers.length);
});

这是我的输出:

C:\projects\rough>node index.js
1
2
3

C:\projects\rough\index.js:13
        const numbers = lines.map(Number);
                              ^

1 个答案:

答案 0 :(得分:2)

lines是一个字符串,而不是一个数组,因为你得到了这个错误。 String没有map()方法。 要获取数组,您需要按\n(换行符)字符拆分数据。

fs.readFile('./big.file', 'utf8', (err, data) = {
  if (err) throw err;
  const lines = data.split('\n');
  console.log(lines);
  const numbers = lines.map(Number);
  const oddNumbers = numbers.filter(n => n%2 ===1);
  console.log('Odd numbers count:', oddNumbers.length);
});