[英]Transform 2D array to object and use first array element as key
想象一下,我有这个 arrays 数组:
myData = [
["wantThisAsKey1",someElement1,anotherElement1],
["wantThisAsKey2",someElement2,anotherElement2]
]
我需要将此数组转换为 object,其中每个数组的第一个元素用作键:
myDataObject = {
"wantThisAsKey1": [someElement1,anotherElement1],
"wantThisAsKey2": [someElement2,anotherElement2],
}
如何以一般方式执行此操作,例如myDataObject = convertToObject(myData)
?
尝试这个:
let myData = [ ["wantThisAsKey1","someElement1","anotherElement1"], ["wantThisAsKey2","someElement2","anotherElement2"] ]; let myDataObject = convertToObject(myData); console.log(myDataObject); function convertToObject(data){ let res = {}; for(let i = 0; i < data.length; i++) res[data[i][0]] = data[i].slice(1); return res; }
为此,您可以将 arrays reduce function 与解构赋值相结合:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
myData = [ ["wantThisAsKey1", 1, 2], ["wantThisAsKey2", 2, 3] ] const newobject = myData.reduce((acc, elem) => { const [key, ...rest] = elem; acc[key] = rest return acc; }, {}) console.log(newobject); // Result: { wantThisAsKey1: [ 1, 2 ], wantThisAsKey2: [ 2, 3 ] }
尝试在此处使用 reduce。 像这样。
const result = myData.reduce( (result, ele) => {
const [key, ...other] = ele
result[key] = other
return result
}, {})
// output = { wantThisAsKey1: [ 'someElement1', 'anotherElement1' ], wantThisAsKey2: [ 'someElement2', 'anotherElement2' ] }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.