javascript - Node.js 奇数计数错误

标签 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()

我阅读了该文件,并尝试查找奇数的计数

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);
                              ^

最佳答案

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);
});

关于javascript - Node.js 奇数计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46004727/

相关文章:

javascript - 如何在点击时将图像尺寸加倍

javascript - Angular 2,textarea(用文字附加表情符号)

node.js - 根据请求从缓冲区上传图像

node.js - 使用socket.IO err_connection_refused

javascript - Heroku Foreman 在 Express.js bodyParser() 调用上退出

javascript - 使用 javascript 中的 id 循环遍历 html 内容

javascript - 使用 'atob' 命令时出错 - 无法在 'atob' : The string to be decoded is not correctly encoded 上执行 'Window'

php - 新用户上线时自动刷新

javascript - $resource删除方法不起作用

javascript - 如何将 Socket.IO-Client 连接到 Sails.js 服务器?