2014-01-19 94 views
0

我想通過一個數組選擇來得到一個數據陣列的數據獲取的數據?通過陣列選擇

+0

數據顯示陣列結構,請 – BeNdErR

+0

什麼是SEL預計將會是什麼樣子? 「node1node2node3」還是「node1,node2,node3」? –

+0

「sel」結構總是不同,它取決於「data_array」。 – bergman

回答

0

它是一個瘋狂的猜測。你可以試試eval()

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

我認爲這會起作用。我儘量不要使用eval()。所以我會做一個解決方法。 – bergman

+0

@bergman,它的工作原理見http://jsfiddle.net/U8YDQ/2/。並分享你的解決方法 – Satpal

+0

嗨thx的小提琴。我的解決方法是傳遞「data_array」:var my_data = data_array [「node1」] [「node2」] [「node3」]; :) – bergman

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); 

您可以輕鬆地通過檢查擴展getBySelector功能,如果節點現有的和返回null,所以沒有異常被一個無效的選擇拋出。

見我的jsfiddle:http://jsfiddle.net/U8YDQ/

+0

這是非常好的。但是我的需求很昂貴,因爲有很多數據需要處理。 – bergman