簡體   English   中英

映射對象數組

[英]Map array of objects

請仔細閱讀問題,這不是以下內容的重復:

讓我們考慮以下對象數組:

var obj = [{ 'key1' : 'value1' }, { 'key2' : 'value2' }];

我想映射數組以獲取每個對象的鍵和值。 就像是:

obj.map((key, val) => console.log(key, val));

我已經嘗試過很多東西,比如Object.entries(obj)但它總是導致復雜的解決方案,有很多括號,比如Object.entries(obj)[0][1]

有沒有一種簡單、漂亮且有效的方法來映射對象數組? 注意我需要每個對象的鍵和值

您似乎只想打印出來或訪問它們:

.map將數組更改為不同的數組,這似乎不是您要查找的內容。

 var objs = [{ 'key1' : 'value1' }, { 'key2' : 'value2' }]; objs.forEach(obj => { for (let p in obj) console.log(p, obj[p]); });

如果您正在尋找key1=value1&key2=value2作為答案,並且您知道每個對象中只有 1 個鍵和值,那么它是:

 let objs = [{ 'key1' : 'value1' }, { 'key2' : 'value2' }]; let s = objs.map(obj => `${Object.keys(obj)[0]}=${Object.values(obj)[0]}`).join("&"); console.log(s);

但您可能想使用encodeURIComponent()對參數進行編碼,使其:

 let objs = [{ 'key1' : 'value1 hello' }, { 'key2' : 'value2 & 3' }]; let s = objs.map(obj => `${encodeURIComponent(Object.keys(obj)[0])}=${(encodeURIComponent(Object.values(obj)[0]))}`).join("&"); console.log(s);

如果您的鍵都是字母數字和下划線字符,那么您不需要在鍵上使用encodeURIComponent()

var obj = [{ 'key1' : 'value1' }, { 'key2' : 'value2' }];
obj.forEach(el => {
  for (var prop in el) {
    console.log(prop, el[prop])
  }
})

// results: 
// key1 value1
// key2 value2

不像@nopole 回答的那么干凈,但是這種類型可以實現您想要的鍵值對象。

 var objs = [{ 'key1' : 'value1' }, { 'key2' : 'value2' }]; objs.forEach(obj => { // loop over keys-and-values for (let [key, value] of Object.entries(obj)) { console.log(key, value); } });

這也適用於具有多個鍵的對象:

 var objs = [{ 'key1' : 'value1', "key2":"value2" }, { 'key3' : 'value3' }]; objs.forEach(obj => { // loop over keys-and-values for (let [key, value] of Object.entries(obj)) { console.log(key, value); } });

暫無
暫無

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

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