Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能帮我学一下这个语法吗?_Javascript_Node.js_Stdin - Fatal编程技术网

Javascript 有人能帮我学一下这个语法吗?

Javascript 有人能帮我学一下这个语法吗?,javascript,node.js,stdin,Javascript,Node.js,Stdin,这可能很愚蠢,但我不熟悉这里的语法: var stdin = ''; process.stdin.on('data', function (chunk) { stdin += chunk; }).on('end', function() { var lines = stdin.split('\n'); for(var i=0; i<lines.length; i++) { process.stdout.write(lines[i]); } }); var stdi

这可能很愚蠢,但我不熟悉这里的语法:

var stdin = '';
process.stdin.on('data', function (chunk) {
  stdin += chunk;
}).on('end', function() {
  var lines = stdin.split('\n');
  for(var i=0; i<lines.length; i++) {
    process.stdout.write(lines[i]);
  }
});
var stdin='';
process.stdin.on('data',函数(块){
stdin+=chunk;
}).on('end',function(){
变量行=标准分割('\n');

对于(var i=0;i您可以将其放入文件
sample.js
中并运行它:

node sample.js
这个
过程。stdin
指的是stdin流(来自其他应用程序的传入数据,例如shell输入,因此基本上:

process.stdin.on('data', function (chunk) {
  stdin += chunk;
})
表示,每当有新的
数据
(用户在控制台中键入某些内容,宿主应用程序发送一些数据),读取它并将其存储在
stdin
变量中。然后,当
stdin
流结束时(例如,用户完成输入数据):

.on('end',function(){
变量行=标准分割('\n');

对于(var i=0;i您可以将其放入文件
sample.js
中并运行它:

node sample.js
这个
过程。stdin
指的是stdin流(来自其他应用程序的传入数据,例如shell输入,因此基本上:

process.stdin.on('data', function (chunk) {
  stdin += chunk;
})
表示,每当有新的
数据
(用户在控制台中键入某些内容,宿主应用程序发送一些数据),读取它并将其存储在
stdin
变量中。然后,当
stdin
流结束时(例如,用户完成输入数据):

.on('end',function(){
变量行=标准分割('\n');

对于(var i=0;i来说,似乎所有的基础设施都在那里。剩下的就是将数字平方

process.stdin
process.stdout
是异步的,因此使用事件来告诉您它们发生了什么。
data
是当有数据准备好处理时的事件,
end
是当没有更多数据时的事件。代码只是snarf
process.stdin
,然后,一旦数据被删除在内存中,处理它

end
匿名函数的最佳实现方式可能是:

function() {
  stdin.split('\n').foreach(function(line){
     var value = line.trim()|0;
     process.stdout.write(value * value);
  });
}
题外话:内存占用可能会通过在流进入时对其进行处理而得到改善,而不是将其收集起来然后一次全部处理。这取决于输入和输入缓冲区的大小:

var buffer = '';
var outputSquare = function(line) {
  var value = line.trim()|0;
  process.stdout.write(value * value);
};
process.stdin.on('data', function (chunk) {
  var lines = (buffer + chunk).split('\n');
  buffer = lines.pop();
  lines.foreach(outputSquare);
}).on('end', function() {
  outputSquare(buffer);
});

看起来所有的基础设施都在那里,剩下的就是把你的数字平方

process.stdin
process.stdout
是异步的,因此使用事件来告诉您它们发生了什么。
data
是当有数据准备好处理时的事件,
end
是当没有更多数据时的事件。代码只是snarf
process.stdin
,然后,一旦数据被删除在内存中,处理它

end
匿名函数的最佳实现方式可能是:

function() {
  stdin.split('\n').foreach(function(line){
     var value = line.trim()|0;
     process.stdout.write(value * value);
  });
}
题外话:内存占用可能会通过在流进入时对其进行处理而得到改善,而不是将其收集起来然后一次全部处理。这取决于输入和输入缓冲区的大小:

var buffer = '';
var outputSquare = function(line) {
  var value = line.trim()|0;
  process.stdout.write(value * value);
};
process.stdin.on('data', function (chunk) {
  var lines = (buffer + chunk).split('\n');
  buffer = lines.pop();
  lines.foreach(outputSquare);
}).on('end', function() {
  outputSquare(buffer);
});

你有两个不相关的问题。一个是关于如何编写一个数字平方的程序,以及语法/结构是什么…你可以从这里开始:@y-intercept我刚刚遇到了一个确切的问题,你能告诉我你把代码放在哪里吗?你有两个不相关的问题。一个是关于如何编写一个数字平方的程序,以及语法/结构是……你可以从这里开始:@y-intercept我刚刚遇到了这个问题,你能告诉我你把代码放在哪里了吗?@y-intercept如果你看到任何你喜欢的答案,请随意升级。如果其中一个答案最能解决你的问题,请随意将其标记为已接受。@Ourobrus,他还不能升级,他还需要1个ppoint,我对这个问题投了赞成票,你也可以投反对票:)@y-intercept如果你看到任何你喜欢的答案,请随意投反对票。如果其中一个答案最能解决你的问题,请随意标记为接受。@Ourobrus,他还不能投反对票,他还需要1分,我对这个问题投了反对票,你也可以投反对票:)