[英]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.