寻求支持嵌套分区与响应式的JavaScript数据结构实现方案
寻找支持响应式嵌套分区与增量汇总的JavaScript数据结构
我需要设计一个JavaScript数据结构/类,满足以下需求:
- 基于多个等长数组,构建至少一层深度的嵌套分区结构
- 支持对其他同长度数组,通过类似
reduce的函数,分别在内层(嵌套)和外层(非嵌套)分区中完成值汇总
我设想的API示例如下:
const arr1 = [1, 0, 0, 1, 1, 0, 0, 1]; const arr2 = ["A", "A", "A", "B", "C", "B", "B", "A"]; const arr3 = [100, 250, 100, 300, 150, 250, 300, 150]; const partition = Partition.from(arr2) .nest(arr1) .reduceWith({arr3}, (a, b) => a + b, 0); partition.outer() // { "A": { arr3: 600 }, "B": { arr3: 850 }, "C": { arr3: 150 } } partition.inner() // { "A0": { arr3: 350 }, "A1" : { arr3: 250 }, "B0": { arr3: 550 }, "B1": { arr3: 300 }, "C1": { arr3: 150 } } // 上面用"A0""B1"这类字符串做键是为了更直观,实际中我可能用JSON字符串(比如"{\"arr2\":\"B\",\"arr1\":0}")作为分区ID,避免歧义
关键要求:嵌套数组的具体值会随时间动态变化(我使用Solid JS,因此需要支持响应式),且内层分区的变化可能更频繁,必须保证仅在必要时重新计算汇总值,避免不必要的性能损耗。
请问有合适的实现思路或成熟模式可以参考吗?
内容的提问来源于stack exchange,提问作者Adam B.
相关产品推荐
相关产品推荐

