簡體   English   中英

遍歷JavaScript URL對象的屬性

[英]Iterate over JavaScript URL Object's Properties

我正在嘗試將JavaScript的URL類的實例映射到一個普通對象,並且無法理解為什么它不起作用。

我猜這是因為屬性不可枚舉,但我不清楚為什么會這樣。

 let input = 'https://www.google.com/index.html?bar=baz#foo' let url = new URL(input) console.log(url.origin) console.log(url.protocol) console.log(url.host) console.log(url.pathname) console.log(url.hash) console.log(url.search) let urlMap = Object.entries(url).reduce((map, [key, value]) => { map[key] = value return map }, {}) console.log(urlMap) // returns {} 

這是我能做的嗎? 我的目標是像這樣編寫url屬性:

return { ...url, pathname: alteredPathname }

如果您檢查url實例的_proto,您將看到,這些字段是getter和setter。 因此Object.entries /鍵在這里不起作用

在此處輸入圖片說明

下面的Howeve循環應該工作

const input = 'https://www.google.com/index.html?bar=baz#foo'

const url = new URL(input)
const map = {};
for (let key in url) {
  map[key] = url[key]
}

console.log(map);

這是輸出 這是輸出

暫無
暫無

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

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