我这边需要的运用场景
10万个数组的过滤,过滤的过程非常多,所以想用位运算的方式来做,这个相当于无限嵌套的and & or,所以在当数据的某一行数据不满足条件时也不能删除,因为可能下一个或运算这个这一列又是需要显示。
// 此数组不是固定的,属性也不是固定
let value = [{a: 1, b:2}, {a: 3, b: 5}, {a: 2, b: 10}];
// 现在有一个无限递归的函数
// 比如
function (value) {
for(let item of value){
if(a > 2 && b > 3 {
// 下一个函数
if(a > 5 || b < 5) {
}
}
}
}
业务需求是用户自定义一个无限嵌套的条件编辑器实现对数据过滤筛选
核心需求就是一个1000-10万的数据不断的与或运算,直接for循环好像卡了一下,所以想用2进制的方式来做可能会快一下,望大佬指点一二,不胜感激
直接 For 循环肯定会卡,因为 JavaScript 单线程,你一个 For 循环把资源占完,要跑多久就会卡多用,用啥办法都一样(顶多能快一点)
一般其他语言在处理这种事情的时候,都会在每次循环结束的时候进行一个 sleep,把资源让出来。但是 javascript 没这功能。但是可以用 setTimeout 来模拟这个功能,然后把循环体内的操作改为异步的。使用 await 从语法层面上来说改动不大。
示例
思路在这,试试看吧