Javascript 通过数组选择器获取数据

Javascript 通过数组选择器获取数据,javascript,Javascript,我想通过数组选择器从数据数组中获取数据: var sel = ["node1"]["node2"]["node3"]; var my_data = data_array[sel] //?!? 如何获得正确的my_数据?这是一个大胆的猜测。你可以试试 这个主意怎么样 Object.prototype.getBySelector = function(selector) { var currentElement = this; for (var i = 0; i < sele

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

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

如何获得正确的my_数据?

这是一个大胆的猜测。你可以试试

这个主意怎么样

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);
Object.prototype.getBySelector=函数(选择器){
var currentElement=此;
对于(变量i=0;i
通过检查节点是否存在并返回null,可以轻松地扩展getBySelector函数,这样就不会在无效选择器上引发异常


请参见我的JSFIDLE:

显示数据数组结构sel应该是什么样子?“node1 node2 node3”或“node1,node2,node3”?sel结构总是不同的,它取决于“数据数组”。它的工作原理应该是:var my_data=数据数组[“node1”][“node2”][“node3”];我想这会管用的。我尽量不使用eval()。“所以我要做一个变通办法。”伯格曼,它是有效的。并分享你的解决办法。提琴的thx。我的解决方法是传递“数据_数组”:var My_data=data_数组[“node1”][“node2”][“node3”];:)那太好了。但对于我的需求来说,这很昂贵,因为有很多数据需要处理。
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);