簡體   English   中英

如何從對象數組創建一個新的 object?

[英]How to create a new object from array of objects?

我有以下動態對象數組:

[

{
id: "1"
name: "Jane"
age: 25
},

{
id: "2"
name: "John"
age: 35
},

{
id: "3"
name: "James"
age: 27
},
]

我需要像這樣創建新的 object:

"peopleSelected:{

"1":
{
"name": "Jane",
"age": 25
},

"2":
{
"name": "John",
"age": 35
},

"3":
{
"name": "James",
"age": 27
},

結構在哪里

"id" :
{
"name":name,
"age":"age
}

我需要使用 useState 保存這個新創建的 object,我不知道該怎么做。 請幫忙。

使用Array.prototype.reduce()

 const arr = [ { id: "1", name: "Jane", age: 25, }, { id: "2", name: "John", age: 35, }, { id: "3", name: "James", age: 27, }, ], solution = { peopleSelected: arr.reduce((acc, { id, name, age }) => { acc[id] = { name, age }; return acc; }, {}), }; console.log(solution);

您可以使用 object 解構如下:

import React from 'react';
import { useState, useEffect } from 'react';

let people = [
    {
        id: "1",
        name: "Jane",
        age: 25
    },
    {
        id: "2",
        name: "John",
        age: 35
    },
    {
        id: "3",
        name: "James",
        age: 27
    }
];

function App() {
    const [ selectedPeople, setSelectedPeople ] = useState({});

    useEffect(() => {
        console.log(Object.entries(people));
        let extractedArray = Object.entries(people);
        let result = extractedArray.map((item) => {
          return `${item[1].id}: ${{
            "name": item[1].name,
            "age": item[1].age
          }}`
        })
        console.log(result);
        
        // Performing object destructuring and setting the state of selectedPeople as an object
        setSelectedPeople({...people})
    }, [])

    return <div>
        <pre>
            {JSON.stringify(selectedPeople, null, '\t')}
        </pre>
    </div>;
}

export default App;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM