簡體   English   中英

設置數組中的值以鍵入對象減少/返回對象內部的值

[英]Set value in array to key in object reduce/return value inside object

下面應該放出“ Yuval”

console.log(pathFind(["book", "author", "name"], {
  book: {
    author: {
      name: "Yuval"
    }
  }
}));

我嘗試編寫此函數,但它始終返回undefined

function pathFind(path, object) {
  return path.reduce((accumulator, name) => {
    if(accumulator && accumulator[name] != typeof 'object') {
      accumulator[name]
    } else {
      undefined, object
    }
  })
} 

我想念什么? (錯字?)

有沒有一種方法可以在此函數中結合使用遞歸和reduce? (即,如何為此進行遞歸?)

請嘗試以下操作:

 var obj = { book: { author: { name: "Yuval" } } }; var path = ["book", "author", "name"]; function findPath(obj, path){ if(path.length === 0) return obj; return findPath(obj[path[0]], path.slice(1)); } console.log(findPath(obj,path)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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