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

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

Gen 2月前

350 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)
  • 以防万一,有人在 2017 年或以后看到这个问题,并寻找一种 容易记住的 如何在 JavaScript 中访问嵌套对象的 详尽博客文章, 而不会被

    无法读取未定义 错误

    1. Oliver Steele 的嵌套对象访问模式

    最简单、最干净的方法是使用 Oliver Steele 的嵌套对象访问模式

    const name = ((user || {}).personalInfo || {}).name;
    

    有了这种符号,你永远不会遇到

    无法读取未定义的属性“名称”

    您基本上会检查用户是否存在,如果不存在,则动态创建一个空对象。这样,下一级键将 始终从存在的对象或空对象访问 ,但永远不会从未定义的对象访问。

    2. 使用数组 Reduce 访问嵌套对象

    为了能够访问嵌套数组,您可以编写自己的数组减少实用程序。

    const getNestedObject = (nestedObj, pathArr) => {
        return pathArr.reduce((obj, key) =>
            (obj && obj[key] !== 'undefined') ? obj[key] : undefined, nestedObj);
    }
    
    // pass in your object structure as array elements
    const name = getNestedObject(user, ['personalInfo', 'name']);
    
    // to access nested array, just pass in array index as an element the path array.
    const city = getNestedObject(user, ['personalInfo', 'addresses', 0, 'city']);
    // this will return the city from the first address item.
    

    还有一个优秀的类型处理最小库 typy ,可以为您完成所有这些工作。

返回
作者最近主题: