簡體   English   中英

Javascript:如何用鍵值對作為字符串從 object 創建數組?

[英]Javascript: How to make array from object with key value pairs as strings?

我有一個 object,必須從中創建一個數組,其中鍵 + 值對轉換為字符串。

var obj = {'x': 1, 'y': 2, 'z':3};

我試圖將內容轉換為字符串:

var joined = Object.entries(obj ).join(' ');

"x,1 y,2 z,3"

和 arrays 的數組

var entries = Object.entries(obj);

但這並不是我所需要的

我理想的結果是

var arrayFromObject = ['x 1', 'y 2', 'z 3'];

我可能可以展平 arrays 的數組,但也許有更好的解決方案?

您可以使用.map().join()Object.entries()獲得所需的 output :

  • 使用Object.entries()獲取給定對象屬性的[key, value]對數組。
  • 使用.map()遍歷第一步返回的數組值,並使用.join()獲取所需格式的字符串。

 const obj = {'x': 1, 'y': 2, 'z': 3}; const array = Object.entries(obj).map(a => a.join(' ')); console.log(array);

如果你知道你有一套 KVP,你可以做類似的事情

const obj = {'x': 1, 'y': 2, 'z':3};
const result = Object.entries(obj).map(entry => `${entry[0]} ${entry[1]}`);
//(3) ["x 1", "y 2", "z 3"]
Object.keys(obj).map(x => `${x} ${obj[x]}`)

解釋

Object.keys(obj)返回["x", "y", "z"]並且map然后將每個鍵映射到模板文字${x} ${obj[x]}其中obj[x]是值 ( y映射到y 2 )

 const obj = {'x': 1, 'y': 2, 'z':3}; const array = Object.entries(obj).map(a => a.join(' ')); console.log(array);

您可以為所需的 output 使用 for 循環,您可以使用 map,但如果列表很大,它會產生性能問題。

 let obj = { x: 1, y: 2, z: 3 }; let outputArray = []; for (let i = 0; i < Object.keys(obj).length; i++) { outputArray.push(Object.keys(obj)[i]+' '+Object.values(obj)[i]); } console.log(outputArray);

暫無
暫無

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

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