Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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_File_Asynchronous_Text - Fatal编程技术网

在javascript中将脉冲序列的零显式打印到文本文件中

在javascript中将脉冲序列的零显式打印到文本文件中,javascript,node.js,file,asynchronous,text,Javascript,Node.js,File,Asynchronous,Text,我试图用Javascript创建一个脉冲序列,并将结果保存到一个文本文件中。 我希望每行一个条目,并且我希望显式地写入零,这是我无法实现的。以下是生成脉冲序列的工作代码 function impulseGenerator(numberOfPoints, frequency){ var zeroArray = []; impulseArray = new Array(100).fill(0); var numberOfOnes = Math.floor(numberOfPo

我试图用Javascript创建一个脉冲序列,并将结果保存到一个文本文件中。 我希望每行一个条目,并且我希望显式地写入零,这是我无法实现的。以下是生成脉冲序列的工作代码

function impulseGenerator(numberOfPoints, frequency){
    var zeroArray = [];
    impulseArray = new Array(100).fill(0);
    var numberOfOnes = Math.floor(numberOfPoints/frequency);
    for(var i=0;i<numberOfPoints;i+=numberOfOnes){
        impulseArray[i]=1;
    }
    return impulseArray;
}
console.log(impulseGenerator(4000,400));
如何修复我的代码

谢谢,
Nakul

关于代码的主要问题是数组构造。您仅用零填充100个元素。不过,稍后您将通过按索引设置数组元素来为数组添加额外的长度。由于没有遍历每个索引,因此保留了一些未定义的数组元素

在尝试加入数组元素时,只考虑未定义的元素。未定义的、null、[]根据array.prototype.join转换为,因此字符串在一段时间内进入“1”序列

我还注意到,您的代码可能与您试图根据变量名称实现的逻辑不同。您正在使用NumberOfOne作为频率将“1”放入数组中

以下是实施示例:

const generateImpulse=length,frequency=>Array.applynull,{length}.map\索引=>!索引%频率?1 : 0;
console.loggenerateImpulse16,4 关于代码的主要问题是数组构造。您仅用零填充100个元素。不过,稍后您将通过按索引设置数组元素来为数组添加额外的长度。由于没有遍历每个索引,因此保留了一些未定义的数组元素

在尝试加入数组元素时,只考虑未定义的元素。未定义的、null、[]根据array.prototype.join转换为,因此字符串在一段时间内进入“1”序列

我还注意到,您的代码可能与您试图根据变量名称实现的逻辑不同。您正在使用NumberOfOne作为频率将“1”放入数组中

以下是实施示例:

const generateImpulse=length,frequency=>Array.applynull,{length}.map\索引=>!索引%频率?1 : 0;
console.loggenerateImpulse16,4 您没有按照所需的长度正确填充数组。 一个简单的、老式的循环实现,用于生成一个数组,其中numberOfPoints的每个频率值设置为1,其他值设置为0:

function impulseGenerator(numberOfPoints, frequency){
  var impulseArray = new Array(numberOfPoints);
  for (var i = 0; i < impulseArray.length; i++) {
    impulseArray[i] = (i % frequency == 0 ? 1 : 0);
  }
  return impulseArray;
}

您没有按照所需的长度正确填充数组。 一个简单的、老式的循环实现,用于生成一个数组,其中numberOfPoints的每个频率值设置为1,其他值设置为0:

function impulseGenerator(numberOfPoints, frequency){
  var impulseArray = new Array(numberOfPoints);
  for (var i = 0; i < impulseArray.length; i++) {
    impulseArray[i] = (i % frequency == 0 ? 1 : 0);
  }
  return impulseArray;
}