查看: 769| 回复: 0
跳转到指定楼层
上一主题 下一主题
收起左侧

[题目讨论] 来吧,我们做个前端题目,Google Sheet Formula 如何快速的update每列/cell的数据?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
大家都知道Google Sheet和excel是可以用函数的,函数apply到每一个列,比如:C = A + B这样。

那么对于一个大型的表格(10k+ cols,10k+ rows),对于复杂的函数依赖比如有多重的 H = (C / D) ^ 2, C = A + B,如何做到修改值后可以快速的update相应的列呢?

我想到的方法:
第一种:
1. 在加载表格的时候就建立一个hashmap,里面列作为key,value就是list of 依赖于该key的其它列, ordered by priority(用上面的例子就是{C: [H], A: [C], B: [C], D: [H])。这样的话,每次update一个cell的时候,直接读hashmap,找到需要bubble up的列,再进行该列的update就可以了。
2. event trigger的话,可以给所有的cell加一个onChange event,然后event handler就直接来做步骤1的操作。

第二种:
直接对每个列建立一个messageChannel,然后如果某一列被update了的话,就trigger一个sendMessage: {channel: [H]},这样的话,对于任何有函数的列,直接subscribe函数内容里面对应列的message就行了。拿到message之后就recalculate。


这样不知道怎么样?有没有人有更好的办法?我总觉得我这方法比较笨。

上一篇:关于一个LinkedList百万级别插入性能优化
下一篇:几种典型负载均衡的线上架构
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表