javascript - 带变量的动态数组过滤函数
问题描述
我是一个 JS 菜鸟,一直被困在一个动态过滤器问题上。我有一组正在后台构建的对象。每个对象都有几个“字段”,其中一个是“时间”。
我希望能够过滤数组以保留所有对象,例如
obj.field.time > t - dt/2
和obj.field.time < t + dt/2
。
从其他论坛我知道如何为常量执行此操作(请参见下面的代码的简化摘录)
filtered_array = array.filter(obj => obj.field.time >= t - dt/2 && obj.field.time <= t + dt/2)
但是如果t和dt可以变化,我该怎么做呢?此外,不确定这是否有影响,但我的“数组”也在逐渐演变(每个时间步dt都会添加几行)
提前谢谢了!
[编辑 - 添加代码以进行澄清]
t = 0;
dt = 0.2;
play = false; // a button on the interface can toggle the play boolean
setInterval(playTime, dt * 1000);
function playTime() {
if (play) {
t = t + dt;
filtered_array = vdData_flat.filter(obj => obj.fields.time >= t - dt / 2 && obj.fields.time <= t + dt / 2)
console.log('extract: ', filtered_array);
}
}
然后是更新 vdData_flat 的地方:
ticksSocket.onmessage = function (event) {
data = JSON.parse(event.data);
[...other stuff...]
vdData.push(data);
vdData_flat = flatten(vdData);
}
和:
// Function for flattening vdData
function flatten(arr) {
return arr.reduce(function (flat, toFlatten) {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
解决方案
推荐阅读
- python - 使用 pyOpenSSL 从捕获中解析“Server Hello”
- javascript - 定义了函数,但 MyFunction 不是函数
- r - 在 R 中的 expand.grid() 上出现内存错误
- c - 一个共享内存段是否有可能将多次附加到同一个父pid?
- list - PROLOG - 拆分列表
- vue.js - Vue.js - 使用 vue-simple-headful 处理元数据
- python - Python - 从元组列表中提取最小值/最大值
- javascript - HTML/Chart JS 从 Python Flask 反序列化 JSON
- java - 构建项目缺少依赖项后生成的 ProtoBuffer 文件
- arrays - Excel 2010 VBA:合并已关闭工作簿中表中的数据:复制/粘贴还是数组?