[英]Convert 2 arrays into key value object javascript
我有一個帶有標題的數組 - 比如說["language", "name", "code"]
和一個數組數組 - 例如[["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]]
。
我正在嘗試獲取一組對象,如下所示:
[
{language: English, name: Matt, code: 2D},
{language: Croatian, name: Dana, code: 8S},
{language: Russian, name: Ivan, code: 2W}
]
在沒有嵌套 for 循環的情況下,有什么優雅的方法可以做到這一點?
const props = ["language", "name", "code"];
const values = [["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]];
const formatted = values.map(value => ({
[props[0]]: value[0],
[props[1]]: value[1],
[props[2]]: value[2],
}));
或者像這樣:
const formatted4 = values.map(value => {
let v = {};
props.forEach((prop, i) => {
v = {
...v,
[prop]: value[i]
}
});
return v;
});
您可以使用數組解構(假設您確定您的數據格式保持不變):
const newArr = [];
for(const [language, name, code] of yourDataArray){
//do whatever you want with the variables language, name, code
newArr.push({
language: language,
name: name,
code: code
})
}
let props=["language", "name", "code"]; let data=[["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]]; let result=data.map( (innerArray) =>{let obj={};innerArray.forEach( (innerData,index) =>{obj[props[index]]=innerData;});return obj; }); console.log(result);
如果數據計數不變,您可以輕松創建它,使用 ES6*
var dataList = [["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]];
let myList = [];
for([language, name, code] of dataList)
myList.push({language, name, code});
console.log(myList);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.