Javascript拆分数组,一遍遍调用
Javascript split array and call it over and over again
我有这个测试函数是正确的,不是我试图在一个值处拆分数组,然后将该值重置为不同的点。
if (test_flag = true) {
peak = 9;
arr = [6,2,6,8,3,2,6,8,9,2,26,8,2,1,6,9,3,4,7,9,8,1,9,2];
}
arr = arr.slice(peak);
peaks = find_the_peaks(arr);
test_flag == false;
peak = peaks;
所以应该发生的是,标志默认为 true,因此 peak 设置为 9,arr 设置为该数组。我们在当前峰值(在本例中为 9)处对数组进行切片,然后调用 'find_the_peaks' 这是我的工作峰值搜索函数和 returns 10。现在从那里开始,峰值应该重置为 10,并且数组应该从那里切片,留下
arr = [2,26,8,2,1,6,9,3,4,7,9,8,1,9,2];
但出于某种原因它没有这样做。我不确定我在这里遗漏了什么,但我找不到它。
我需要每次传入一个新的数组,并在新的峰位置切片,直到数组中没有峰为止。每次按下按钮时,当前数组在当前峰处切片,然后传递新数组并找到新峰。
我最后做的是使用 slice 来分割数组,然后在我找到的峰值点上加回去。所以我的函数看起来像
if (right_split_flag == true) {
array_to_be_analyzed_right = float_array;
peak = peak_main;
}
array_to_be_analyzed_right = array_to_be_analyzed_right.slice(peak);
peak = find_the_peaks(array_to_be_analyzed_right);
frequency_of_peak = center_frequency + offset_val[peak + 1];
peak_value_right[0] = freq;
peak_value_right[1] = array_to_be_analyzed_right[peak];
peak_value_right[2] = peak + peak_index_pos;
right_peak_flag = false;
right_split_flag = false;
return peak_value_right;
peak_value_right 是我在屏幕上显示的元组,其中包含频率、峰值点,然后是位置加上峰值点位置。向左拆分时,我所做的只是将数组的长度更改为峰值位置的 1 长度。我的代码看起来像
for (var i = 0; i < arr.length; i++) {
if (arr[i] == function_peak_val) {
arr.length = i - 1;
}
}
return arr;
其中 function_peak_val 是我的最高位置,arr 是我传入的数组
我有这个测试函数是正确的,不是我试图在一个值处拆分数组,然后将该值重置为不同的点。
if (test_flag = true) {
peak = 9;
arr = [6,2,6,8,3,2,6,8,9,2,26,8,2,1,6,9,3,4,7,9,8,1,9,2];
}
arr = arr.slice(peak);
peaks = find_the_peaks(arr);
test_flag == false;
peak = peaks;
所以应该发生的是,标志默认为 true,因此 peak 设置为 9,arr 设置为该数组。我们在当前峰值(在本例中为 9)处对数组进行切片,然后调用 'find_the_peaks' 这是我的工作峰值搜索函数和 returns 10。现在从那里开始,峰值应该重置为 10,并且数组应该从那里切片,留下
arr = [2,26,8,2,1,6,9,3,4,7,9,8,1,9,2];
但出于某种原因它没有这样做。我不确定我在这里遗漏了什么,但我找不到它。
我需要每次传入一个新的数组,并在新的峰位置切片,直到数组中没有峰为止。每次按下按钮时,当前数组在当前峰处切片,然后传递新数组并找到新峰。
我最后做的是使用 slice 来分割数组,然后在我找到的峰值点上加回去。所以我的函数看起来像
if (right_split_flag == true) {
array_to_be_analyzed_right = float_array;
peak = peak_main;
}
array_to_be_analyzed_right = array_to_be_analyzed_right.slice(peak);
peak = find_the_peaks(array_to_be_analyzed_right);
frequency_of_peak = center_frequency + offset_val[peak + 1];
peak_value_right[0] = freq;
peak_value_right[1] = array_to_be_analyzed_right[peak];
peak_value_right[2] = peak + peak_index_pos;
right_peak_flag = false;
right_split_flag = false;
return peak_value_right;
peak_value_right 是我在屏幕上显示的元组,其中包含频率、峰值点,然后是位置加上峰值点位置。向左拆分时,我所做的只是将数组的长度更改为峰值位置的 1 长度。我的代码看起来像
for (var i = 0; i < arr.length; i++) {
if (arr[i] == function_peak_val) {
arr.length = i - 1;
}
}
return arr;
其中 function_peak_val 是我的最高位置,arr 是我传入的数组