[英]How to convert array to object using loop (forEach, map, etc..) in Javascript
From从
[
{
"id": "0001",
"name": "Jack",
"completeName": "Jack Smith"
},
{
"id": "0002",
"name": "Mary",
"completeName": "Mary Jackson"
},
{
"id": "0003",
"name": "John",
"completeName": "John Doe"
}
]
to this:对此:
{
"Jack" :{
"id": "0001",
"name": "Jack",
"completeName": "Jack Smith"
},
"Mary" : {
"id": "0002",
"name": "Mary",
"completeName": "Mary Jackson"
},
"John": {
"id": "0003",
"name": "John",
"completeName": "John Doe"
}
}
1. using forEach : 1. 使用 forEach :
var data = [{ "id": "0001", "name": "Jack", "completeName": "Jack Smith" }, { "id": "0002", "name": "Mary", "completeName": "Mary Jackson" }, { "id": "0003", "name": "John", "completeName": "John Doe" } ]; var result = {}; data.forEach(function(val) { result[val["name"]] = val; }); console.log(result);
2. Using object.assign
and map
: 2. 使用
object.assign
和map
:
var data = [{ "id": "0001", "name": "Jack", "completeName": "Jack Smith" }, { "id": "0002", "name": "Mary", "completeName": "Mary Jackson" }, { "id": "0003", "name": "John", "completeName": "John Doe" } ]; let dictionary = Object.assign({}, ...data.map((x) => ({ [x.name]: x }))); console.log(dictionary);
You can use .map()
and Object.fromEntries()
.您可以使用
.map()
和Object.fromEntries()
。
var data = [{ "id": "0001", "name": "Jack", "completeName": "Jack Smith" }, { "id": "0002", "name": "Mary", "completeName": "Mary Jackson" }, { "id": "0003", "name": "John", "completeName": "John Doe" } ]; var result = Object.fromEntries(data.map(el => [el.name, el])); console.log(result);
You can use an array reduce method.您可以使用数组reduce方法。 Array.prototype.reduce()
Array.prototype.reduce()
const test = [ { "id": "0001", "name": "Jack", "completeName": "Jack Smith" }, { "id": "0002", "name": "Mary", "completeName": "Mary Jackson" }, { "id": "0003", "name": "John", "completeName": "John Doe" } ]; const results = test.reduce((obj, props) => { obj[props.name] = props; return obj; } , {}); console.log(results);
You need to take your data, let's say it's stored in the data
variable, and reduce()
it with this one-liner:您需要获取您的数据,假设它存储在
data
变量中,并使用这个单行reduce()
它:
const output = data.reduce((acc, row) => ({ ...acc, [row.name]: row }), {} );
const data = [ { id: '0001', name: 'Jack', completeName: 'Jack Smith', }, { id: '0002', name: 'Mary', completeName: 'Mary Jackson', }, { id: '0003', name: 'John', completeName: 'John Doe', }, ]; const output = data.reduce((acc, row) => ({ ...acc, [row.name]: row }), {}); console.log(output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.