8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何访问和处理嵌套对象、数组或 JSON?

Gen 2月前

336 0

我有一个包含对象和数组的嵌套数据结构。我如何提取信息,即访问特定或多个值(或键)?例如:var data = { code: 42, i...

我有一个包含对象和数组的嵌套数据结构。如何提取信息,即访问特定值或多个值(或键)?

例如:

var data = {
    code: 42,
    items: [{
        id: 1,
        name: 'foo'
    }, {
        id: 2,
        name: 'bar'
    }]
};

我如何访问 name 中的第二项 items

帖子版权声明 1、本帖标题:如何访问和处理嵌套对象、数组或 JSON?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Gen在本站《dictionary》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 要访问嵌套属性,您需要指定其名称,然后搜索该对象。

    如果您已经知道确切的路径,那么您可以在脚本中对其进行硬编码,如下所示:

    data['items'][1]['name']
    

    这些也有效 -

    data.items[1].name
    data['items'][1].name
    data.items[1]['name']
    

    当您事先不知道确切的名称,或者用户为您提供了名称时。 然后需要动态搜索数据结构。 有人建议可以使用循环进行搜索 for ,但有一种非常简单的方法可以使用 Array.reduce .

    const data = { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] }
    const path = [ 'items', '1', 'name']
    let result = path.reduce((a,v) => a[v], data)
    

    路径是这样说的:首先获取带有键的对象 items ,该对象恰好是一个数组。然后获取 1 -st 元素(0 索引数组)。最后获取该数组元素中带有键的对象 name ,该对象恰好是字符串 bar .

    如果你有一条很长的路,你甚至可以用它 String.split 来让这一切变得更容易——

    'items.1.name'.split('.').reduce((a,v) => a[v], data)
    

    这只是普通的 JavaScript,没有使用任何第三方库,如 jQuery 或 lodash。

返回
作者最近主题: