[英]How do I convert an array of strings to an object property in javascript?
轉換字符串數組以訪問對象屬性的最佳方法是什么?
例如:
var obj = {
a: {
b: {
c: 4
}
}
};
我有一個陣列
var arr = ['a', 'b', 'c'];
只需訪問obj,迭代數組獲得4的效率最高是什么?
這是因為不知道對象有多少維度。
使用reduce
,每次訪問當前累加器對象的[prop]
,傳遞obj
作為初始值:
var obj = { a: { b: { c: 4 } } }; var arr = ['a', 'b', 'c']; console.log( arr.reduce((a, prop) => a[prop], obj) );
對於ES5,只需將箭頭功能轉換為標准功能:
var obj = { a: { b: { c: 4 } } }; var arr = ['a', 'b', 'c']; console.log( arr.reduce(function(a, prop) { return a[prop]; }, obj) );
也就是說,用最新最好的語言編寫它會好得多,如果你需要支持古老的瀏覽器,可以在以后使用Babel在構建步驟中自動將代碼轉換為ES5。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.