我想通过数组选择器从数据数组中获取数据:
var sel = ["node1"]["node2"]["node3"];
var my_data = data_array[sel] //?!?
如何获得正确的my_data?
答案 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);