我们如何在JavaScript.file.txt中没有HMTL的情况下找到单词?

时间:2018-10-08 14:29:16

标签: javascript

在我的项目中,我试图在文件中找到一些单词,我用JS编写了程序,但是我有一些语法问题,我不知道为什么。目的是当程序找到玫瑰后将其写入终端花等。 我的程序是:

var fs = require('fs');
var str = fs.readFileSync('input.txt', 'utf8');

str.split(/\s+/).forEach(s =>
  console.log(
    s === 'rose'
      ? 'flower'
      : s === 'bird'
      ? 'animal'
      : s === 'cookie'
      ? 'dog'
      : 'unknown'
  )
);

出现在终端上的不同错误是:

  js: "prog.js", line 5: syntax error
js: str.split(/\s+/).forEach(s =>
js: ............................^
js: "prog.js", line 6: syntax error
js:   console.log(
js: ..........^
js: "prog.js", line 7: syntax error
js:     s === 'rose'
js: ........^
js: "prog.js", line 9: syntax error
js:       : s === 'bird'
js: .......^
js: "prog.js", line 11: syntax error
js:       : s === 'cookie'
js: .......^
js: "prog.js", line 13: syntax error
js:       : 'unknown'
js: .......^
js: "prog.js", line 15: syntax error
js: );
js: ^
js: "prog.js", line 1: Compilation produced 7 syntax errors.

要运行该程序,请使用以下命令:rhino prog.js

那么您能帮我找到错误吗?

1 个答案:

答案 0 :(得分:1)

由于Rhino当前不支持箭头功能,因此出现错误:即() => { ...}

请参阅:https://mozilla.github.io/rhino/compat/engines.html#ES2015-syntax-destructuring--parameters-defaults--arrow-function

很幸运,这很容易解决!只需删除箭头功能即可;这应该工作:

var fs = require('fs');
var str = fs.readFileSync('input.txt', 'utf8');

str.split(/\s+/).forEach(function (s) {
  return console.log(s === 'rose' ? 'flower' : s === 'bird' ? 'animal' : s === 
'cookie' ? 'dog' : 'unknown');
});