单键值对做成[{Name: xx, Value: yy},{Name:xx1,Value:yy1}]的形式还是直接{xx:yy,xx1:yy1}?

2020-06-04 15:43:14 +08:00
 qW7bo2FbzbC0

如题,有点强迫症

排除 key 重复的情况,这两种解决方案有什么区别吗?

1765 次点击
所在节点    程序员
11 条回复
linvon
2020-06-04 15:47:39 +08:00
不应该分别对应某一个类型的多个实例和多种属性吗?
qW7bo2FbzbC0
2020-06-04 15:59:00 +08:00
@linvon 就是遇到了这两种都可以的场景,但是纠结于用那个更合适点,一般是在代码内部交互,非面向外部 API
faceRollingKB
2020-06-04 15:59:57 +08:00
如果你需要频繁的使用某个 key‘查找的话,就用第二种啊
rannnn
2020-06-04 16:10:48 +08:00
一个有序一个无序
msg7086
2020-06-04 16:12:03 +08:00
冒号前面是 key 冒号后面是 value,你再帮他说一遍,你等于……(走错片场了

一般用 2 就行了,如果 key 重复的话也可以用[[k1, v1], [k2, v2]]这样的结构。
TomatoYuyuko
2020-06-04 16:12:13 +08:00
第二种可能会遇到 {'12345':'abc'}这种情况,取起来会有点烦人
ryncv
2020-06-04 17:22:28 +08:00
目前项目大量使用第二种,需要比较棘手的问题有两个:
1.作为下拉框选项,遇到需要排序的场景比较难处理
2.无法处理重名 key (永远不要相信 pm 的鬼话)
imn1
2020-06-04 17:45:36 +08:00
看业务流程,如果 name 本身是某个 object 的属性的话,还是用第一种吧,例如合并 dict 会比较容易
如果这个键值对完全独立,跟其他对象毫无关系,那就随意
banricho
2020-06-04 17:53:28 +08:00
前者有序,后者无序
前者查询方式更灵活,后者依赖 key 查询

可控的轻量级的一般用前者,后者的扩展性会更好一些
someonedeng
2020-06-04 23:15:43 +08:00
`{xx:yy,xx1:yy1}` 好像见过不少前端吐槽这种的。。
qW7bo2FbzbC0
2020-06-05 09:43:12 +08:00
@someonedeng 面向其他人的话,这里一般采用第一种的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX