在Javascript中的对象的任何级别上获取元素 [英] Get element on any level of an object in Javasscript

查看:58
本文介绍了在Javascript中的对象的任何级别上获取元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出以下内容:

var a = JSON.parse('{"fst":"data1","snd":{"ind2":"data2"}}');
var index = "fst";
var res = a[index]; //res = data1
var index2 = "????";
var res2 = a[index2]; //res = data2

我应该穿什么index2,以使res2等于data2?

what should I put on index2 so res2 equals data2?

我正在寻找一种通用语法,只需修改索引字符串即可让我在解析的json的任何级别上获取元素.

I'm looking for a generic syntax that would let me grab an element at ANY level of the parsed json, just by modifying the index string.

(我正在遍历json派生对象的不同位置/级别的元素列表以构建表)

(I'm looping through a list of elements from different places/levels of a json derived object to build a table)

任何帮助将不胜感激

推荐答案

为此您需要一个函数

function deepAccess( obj, str ) {
    var parts = str.split("."),
        cur = obj;
    for( var i = 0; i < parts.length; ++i ) {
        cur = cur[parts[i]];    
    }

    return cur;
}

var index = "fst";
deepAccess( a, index ); //"data1"
index = "snd.ind2";
deepAccess( a, index ); //"data2"

这篇关于在Javascript中的对象的任何级别上获取元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆