簡體   English   中英

如何在javascript中將字符串數組轉換為對象屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM