在javascript中将脉冲序列的零显式打印到文本文件中
我试图用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
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;
}