javascript - javascript:推断一个数字数组
问题描述
我必须根据数据值 v/s 时间 {x-axis= time[] ,y-axis = data1[]} 绘制图表。我想推断这个数组,然后绘制图表。我使用以下代码是这样做的正确方法吗?
function interpolateArray(data, fitCount) {
var linearInterpolate = function (before, after, atPoint) {
return before + (after - before) * atPoint;
};
var newData = new Array();
var springFactor = new Number((data.length - 1) / (fitCount - 1));
newData[0] = data[0]; // for new allocation
for ( var i = 1; i < fitCount - 1; i++) {
var tmp = i * springFactor;
var before = new Number(Math.floor(tmp)).toFixed();
var after = new Number(Math.ceil(tmp)).toFixed();
var atPoint = tmp - before;
newData[i] = linearInterpolate(data[before], data[after], atPoint);
}
newData[fitCount - 1] = data[data.length - 1]; // for new allocation
return newData;
};
data1 = interpolateArray(data1,(data1.length*2))
data2 = interpolateArray(data2,(data2.length*2))
然后我将日期转换为纪元时间,然后做同样的事情并转换回UTC时间,就像这样
Timestamp11=interpolateArray(Timestamp11,(Timestamp11.length*2))
for(var i=0;i<Timestamp11.length;i++)
{
console.log(Timestamp11[i]);
var edgeTime11=Timestamp11[i]/1000000
var myDate11 = new Date(Time11)
var utcString = myDate11.toString();
var time = utcString.slice(16, 24);
Timestamp11[i] = time;}
window.myLine3 = new Chart(ctx3, charInit3(data1, data2, Timestamp11));
这是推断时间序列数据的正确方法吗?如果不是,请纠正我。
解决方案
顶部
const interpolateArray = (data, fitCount) => {
let newData = [];
let springFactor = Number((data.length - 1) / (fitCount - 1));
let linearInterpolate = (before, after, atPoint) => {
return before + (after - before) * atPoint;
};
for (var i = 0; i < fitCount - 1; i++) {
let tmp = i * springFactor;
let before = Number(Math.floor(tmp)).toFixed();
let after = Number(Math.ceil(tmp)).toFixed();
let atPoint = tmp - before;
newData.push(linearInterpolate(data[before], data[after], atPoint));
}
// for new allocation
newData[fitCount - 1] = data[data.length - 1];
return newData;
};
let originalArry = [1, 5, 3];
let newArry = interpolateArray([1, 5, 3], 5);
let p1 = document.createElement('div');
let p2 = document.createElement('div');
document.body.appendChild(p1);
document.body.appendChild(p2);
p1.textContent = 'Original Array : ' + JSON.stringify(originalArry);
p2.textContent = 'After Intrapolation( value = 5) : ' + JSON.stringify(newArry);
推荐阅读
- vue.js - 如何将道具从父组件直接传递给所有子组件?
- gitlab-ci - Gitlab ci yml 语法错误
- c# - 如何使用 HttpClient 获得上传速度
- python - 硒不吸收特定元素
- c# - 依赖注入如何在客户端查询?
- android - Android:如何在我的应用程序启动器图标上禁用“图标框架”?
- javascript - 如何制作循环进度倒数计时器?
- backup - Borg prune 删除新档案
- elasticsearch - 使用 Solr 空间搜索在近距离的时间范围内找到彼此最近的点
- node.js - 在节点中使用 process.stdout 编写多行字符串