簡體   English   中英

數組:合並鍵和值,調用為 object

[英]Array: Merge keys and values, to call as an object

如何編寫純 JS。

要調用此內容:

var keys = ["height", "width"];
var values = [["12px", "24px"],["127px", "284px"]...];

進入可讀參考object:

簡單values_line[1].height可能返回127px

試試這個代碼: var array = keys.map((el, i) => { return [keys[i], values[i]]; });

但它只能將鍵與值匹配一次。

console.log(array);
// → [["height", "12px"], ["width", "24px"]]
var output = Object.fromEntries(array);
// → {height: "12px", width: "24px"}
console.log(output);

甚至

 var result = {};
    for (var i = 0; i < keys.length; i++)
         result[keys[i]] = values[i];

有什么想法可以創建帶有標題/標題名稱的完整“表”的 object?

對於每個值,map 在keys數組上創建一個元組[key, value] ,然后使用Object.fromEntries構造您的 object。

 var keys = ["height", "width"]; var values = [["12px", "24px"],["127px", "284px"]]; var dimensions = values.map(value => ( Object.fromEntries(keys.map((key, index) => ([key, value[index]]))) )); console.log(dimensions);

使用Array#map迭代values

在每次迭代中,使用表示鍵值對的Array#reduce reduce 從keys創建一個 object,其中它的值根據index來自當前列表:

 const keys = ["height", "width"], values = [["12px", "24px"],["127px", "284px"]]; const values_line = values.map(currentValues => keys.reduce((acc, key, index) => ({...acc, [key]: currentValues[index]}), {}) ); console.log(values_line);

使用for-loops

 const keys = ["height", "width"], values = [["12px", "24px"],["127px", "284px"]]; const values_line = []; for(let i = 0; i < values.length; i++) { const currentValues = values[i]; const currentObj = {}; for(let j = 0; j < keys.length; j++) { const key = keys[j]; currentObj[key] = currentValues[j]; } values_line[i] = currentObj; } console.log(values_line);

暫無
暫無

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

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