繁体   English   中英

将二维数组转换为 object 并使用第一个数组元素作为键

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM