![]() |
1
6
Javascript对象的特点是它们是必不可少的映射。您可以使用点符号(“object.property”)和索引符号(“object[“property”])访问属性。也可以使用for(i…)或for(in…)枚举其属性
我最近一直在做的是为array对象构建一些Linq风格的扩展:
忽略我的自定义抛出类型,它基本上允许您执行以下操作:
如果你有兴趣的话,我会在某个时候把它全部公布出来? |
![]() |
2
2
通常,在Javascript中迭代数组集合的最有效方法是使用本机for循环。我之所以说“通常”是因为实现归结为每个浏览器的javascript实现,所以没有绝对确定的答案。 http://solutoire.com/2007/02/02/efficient-looping-in-javascript/ 其中涵盖了每种主要迭代方法的性能,并从经验上得出了相同的结论。 |
![]() |
3
2
如果您不需要维护顺序,那么最好的方法是创建一个常规对象,并按任务id进行索引
如果您还需要维护顺序,那么可以编写一个OrderedMap“类”,通过创建任务id数组来维护顺序,但实际任务仍将存储在按任务id索引的对象中。因此基本上您需要:
外部世界可能不知道您是如何维护顺序的,只要您提供一种很好的封装方式,按顺序迭代这些命令,并按任务id访问它们。 |
![]() |
4
2
再多想一想,这就是我最后的结论:
这允许我做一个简单的tasks.find('t.id==2')或tasks.find('t.completed==1'); |
![]() |
5
0
如果id是唯一的(并且大部分是连续的),您可以对数组进行一次重新排列,以便数组索引反映id。如果它们不是唯一的,您可以对它们进行排序并进行二进制搜索。 但是只有经常从数组中按id访问项时,这才有用,否则排序的开销就不值了。 |
![]() |
6
0
你的阵型大吗?如果不是,你可能不会赢得很多微秒优化它。
只需使用一个普通的PHP关联数组,并通过json\u encode或您正在使用的任何东西来运行它。
|
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |