將點表示法中的JavaScript 字串轉換為物件參考
在JavaScript 中,使用點表示法導覽物件屬性為一件事種常見且方便的做法。但是,在某些情況下,您可能有一個表示點分隔層次結構的字串,需要將其轉換為物件參考以便於存取。
問題陳述:
給定一個物件和一個點表示法的字串,如何將字串轉換為物件引用以存取對應的物件屬性?
範例:
考慮以下物件:
var obj = { a: { b: '1', c: '2' } }
和一個字串:
"a.b"
解:
有幾種方法可以實現此目的:1 .使用eval() 函數(不建議):
eval("var val = obj." + string);
2.使用 [] 運算子(間接方法):
var val = obj[string];
3.使用reduce()方法:
var val = string.split('.').reduce(function(obj, i) { return obj[i]; }, obj);
4。使用 multiIndex() 函數:
var val = multiIndex(obj, string.split('.')); function multiIndex(obj, is) { return is.length ? multiIndex(obj[is[0]],is.slice(1)) : obj }
處理數組(可選):
如果字串包含數組索引,您可以使用以下方法:var val = string.match(/[^\]\[.]+/g).reduce(function(obj, i) { return obj[i]; }, obj);
附加註意:
以上是如何將點表示法的 JavaScript 字串轉換為物件參考?的詳細內容。更多資訊請關注PHP中文網其他相關文章!