通过数组选择器获取数据

时间:2014-01-19 14:03:10

标签: javascript

我想通过数组选择器从数据数组中获取数据:

var sel = ["node1"]["node2"]["node3"];
var my_data = data_array[sel] //?!?

如何获得正确的my_data?

2 个答案:

答案 0 :(得分:1)

这个想法怎么样?

Object.prototype.getBySelector = function(selector) {
    var currentElement = this;
    for (var i = 0; i < selector.length; i++) 
        currentElement = currentElement[selector[i]];
    return currentElement;
}

var sel = ["node1","node2","node3"];
var my_data = data_array.getBySelector(sel);

您可以通过检查节点是否存在并返回null来轻松扩展getBySelector函数,因此无效选择器上不会抛出异常。

请参阅我的jsfiddle:http://jsfiddle.net/U8YDQ/

答案 1 :(得分:0)

这是一个狂野的猜测。您可以尝试eval()

var sel = '["node1"]["node2"]["node3"]';
var my_data = eval('data_array' + sel);