V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
silk
V2EX  ›  JavaScript

js 与数组的元素绑定 是存储数组元素的 key 还是 直接存储数组元素的对象引用

  •  
  •   silk · 2021-05-25 09:31:06 +08:00 · 1911 次点击
    这是一个创建于 1277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    const a: Array<{
        key: string;
        data: Object[];
    }> = []
    

    另一个对象需要获取这个数组 a 的某个元素,这个对象是保存 key 还是直接保存对 data 数组的引用

    8 条回复    2021-05-26 12:23:19 +08:00
    7075
        1
    7075  
       2021-05-25 09:39:12 +08:00
    js 没有指针的概念,数组类型默认也只是存引用。
    yaphets666
        2
    yaphets666  
       2021-05-25 10:15:35 +08:00
    没看懂你说啥
    JustLookBy
        3
    JustLookBy  
       2021-05-25 10:17:14 +08:00
    你这保存 key 也没用啊。。。 要也是保存数组的下标。
    如果 key 不重复,那就直接用 object 存 不要用数组,那保存 key 就可以了
    当然,直接保存对 data 数组的引用 是可以的。
    star7th
        4
    star7th  
       2021-05-25 11:10:43 +08:00
    保存 key 合适。这样解耦。
    yikyo
        5
    yikyo  
       2021-05-25 11:32:21 +08:00
    const data: Array<{
    [key: string]: Object[];
    }> = {};

    这样更方便吧。
    maplerecall
        6
    maplerecall  
       2021-05-25 11:58:18 +08:00 via Android
    取决于你的使用频率,存 key 的话你每次取都得遍历数组,存 data 直接用就行了。

    如果有很多这样的应用,最好把数组转个 key:data 的 object,这样既不用遍历,也不用直接存 data 的引用。
    silk
        7
    silk  
    OP
       2021-05-26 08:25:58 +08:00
    @maplerecall key 是后端生成的唯一字符串 十几个字母数组用来做属性名 这样 ok ?
    no1xsyzy
        8
    no1xsyzy  
       2021-05-26 12:23:19 +08:00
    @silk 完全 ok 的,JSON 就是 JS 里面的「对象」(O)的「表示方式」(N)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:40 · PVG 12:40 · LAX 20:40 · JFK 23:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.