Пу sh объект из массива в другой массив javascript - PullRequest
2 голосов
/ 08 мая 2020

У меня проблема с помещением объекта в массив. Я получаю массив объектов из локального файла. json. Я пытаюсь создать функцию, которая помещает данный объект в массив, чтобы я мог использовать ее позже.

Вот как я получаю свой объект.

{id: 3176, name: "Matthias Ginter", position: "Defender", dateOfBirth: "1994-01-03T00:00:00Z", countryOfBirth: "Germany", …}
countryOfBirth: "Germany"
dateOfBirth: "1994-01-03T00:00:00Z"
id: 3176
name: "Matthias Ginter"
nationality: "Germany"
position: "Defender"
role: "PLAYER"
__proto__: Object

Мой код в React:

{data.map(
                        (player) => (
                            player.position == null ? (player.position = "Coach") : null,
                            (
                                <PlayerCard
                                    name={player.name}
                                    position={player.position}
                                    dateOfBirth={player.dateOfBirth}
                                    nationality={player.nationality}
                                    id={player.id}
                                    handleClick={() => selectedPlayers.push(player)}
                                />
                            )
                        )
                    )}

и массив, в который я пытаюсь вставить sh :

let selectedPlayers = [
        {
            id: 3176,
            name: "Matthias Ginter",
            position: "Defender",
            dateOfBirth: "1994-01-03T00:00:00Z",
            countryOfBirth: "Germany",
            nationality: "Germany",
            role: "PLAYER",
        },
        {
            id: 3176,
            name: "Mat Giensien",
            position: "Defender",
            dateOfBirth: "1994-01-03T00:00:00Z",
            countryOfBirth: "Germany",
            nationality: "Germany",
            role: "PLAYER",
        },
    ];

если я сделаю handleClick = {() => {console.log(player)}}, я получу объект, как показано выше. Что мне не хватает?!

Я прочитал все темы здесь, в SO, но не смог найти решение, которое подойдет мне. Я перепробовал все рекомендуемые способы в других темах, но они все еще не работают для меня.

Пожалуйста , халп мееее:)

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Попробуйте следующее:

let selectedPlayers = [
    {
        id: 3176,
        name: "Matthias Ginter",
        position: "Defender",
        dateOfBirth: "1994-01-03T00:00:00Z",
        countryOfBirth: "Germany",
        nationality: "Germany",
        role: "PLAYER"
    },
    {
        id: 3176,
        name: "Mat Giensien",
        position: "Defender",
        dateOfBirth: "1994-01-03T00:00:00Z",
        countryOfBirth: "Germany",
        nationality: "Germany",
        role: "PLAYER"
    }
];

let newData = {id: 9999, name: "bob jones", position: "goalkepper", dateOfBirth: "2020-01-03T00:00:00Z", nationality: "Spain", role: "MANAGER"}

 selectedPlayers.push(newData);


 console.log( selectedPlayers );

Возможно, вам придется повозиться с форматированием полученного объекта и объекта, который вы нажимаете, чтобы заставить iy работать правильно. Но, если вы контролируете код и файл JSON, это не должно быть проблемой ...

0 голосов
/ 08 мая 2020
{data.map(player => {
    return (
        <PlayerCard
            name={player.name}
            position={player.position ? "Coach" : null}
            dateOfBirth={player.dateOfBirth}
            nationality={player.nationality}
            id={player.id}
            handleClick={() => selectedPlayers.push(player)}
        />
    )
)}
...