Node.js, отобразить массив объектов и поместить указанные значения c в новый массив - PullRequest
0 голосов
/ 07 января 2020

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

Например, запись с post_id: "5e1223c2383ce049d8b32eb5 «Мне нужен связанный массив, который будет содержать [1, 4]. И пост с post_id "" 5e146b993dde720850c11c0e "будет содержать [5] et c.

Помощь будет очень признателен!

[
    {
        "post_id": "5e1223c2383ce049d8b32eb5",
        "ratings": [
            {
                "_id": "5e134aa9d6c3a51930452d49",
                "user": "5e0f76c96a55d6352879daab",
                "score": 1
            },
            {
                "_id": "5e134c00cab61f408c75d2f2",
                "user": "5e0f34adab4d4b369c57fbd4",
                "score": 4
            }
        ]
    },
    {
        "post_id": "5e13592c62008b4e3435472f",
        "ratings": []
    },
    {
        "post_id": "5e146b993dde720850c11c0e",
        "ratings": [
            {
                "_id": "5e1473583dde720850c11c13",
                "user": "5e0f34adab4d4b369c57fbd4",
                "score": 5
            }
        ]
    }
]

Ответы [ 2 ]

1 голос
/ 07 января 2020

    const original_array = [
        {
            "post_id": "5e1223c2383ce049d8b32eb5",
            "ratings": [
                {
                    "_id": "5e134aa9d6c3a51930452d49",
                    "user": "5e0f76c96a55d6352879daab",
                    "score": 1
                },
                {
                    "_id": "5e134c00cab61f408c75d2f2",
                    "user": "5e0f34adab4d4b369c57fbd4",
                    "score": 4
                }
            ]
        },
        {
            "post_id": "5e13592c62008b4e3435472f",
            "ratings": []
        },
        {
            "post_id": "5e146b993dde720850c11c0e",
            "ratings": [
                {
                    "_id": "5e1473583dde720850c11c13",
                    "user": "5e0f34adab4d4b369c57fbd4",
                    "score": 5
                }
            ]
        }
    ];
    
    const new_array = original_array.map(item => ({
        post_id: item.post_id,
        ratings: item.ratings.map(item => item.score)
    }));
    
    console.log(new_array);

Вывод:

[
    {
        post_id: '5e1223c2383ce049d8b32eb5',
        ratings: [1, 4]
    },
    {
        post_id: '5e13592c62008b4e3435472f',
        ratings: []
    },
    {
        post_id: '5e146b993dde720850c11c0e',
        ratings: [5]
    }
]
0 голосов
/ 07 января 2020

Вы можете l oop просмотреть свой массив сообщений и сопоставить каждый массив пользователей с массивом баллов:

data.forEach(post => {
  post.ratings = post.ratings.map(({score}) => score)
});

console.log(data)
<script>const data=[{post_id:"5e1223c2383ce049d8b32eb5",ratings:[{_id:"5e134aa9d6c3a51930452d49",user:"5e0f76c96a55d6352879daab",score:1},{_id:"5e134c00cab61f408c75d2f2",user:"5e0f34adab4d4b369c57fbd4",score:4}]},{post_id:"5e13592c62008b4e3435472f",ratings:[]},{post_id:"5e146b993dde720850c11c0e",ratings:[{_id:"5e1473583dde720850c11c13",user:"5e0f34adab4d4b369c57fbd4",score:5}]}];</script>

Вы также можете отобразить весь массив для создания отдельного объекта:

const result = data.map(({ post_id, ratings }) => {
  return { post_id, ratings: ratings.map(({ score }) => score) }
});

console.log(result)
<script>const data=[{post_id:"5e1223c2383ce049d8b32eb5",ratings:[{_id:"5e134aa9d6c3a51930452d49",user:"5e0f76c96a55d6352879daab",score:1},{_id:"5e134c00cab61f408c75d2f2",user:"5e0f34adab4d4b369c57fbd4",score:4}]},{post_id:"5e13592c62008b4e3435472f",ratings:[]},{post_id:"5e146b993dde720850c11c0e",ratings:[{_id:"5e1473583dde720850c11c13",user:"5e0f34adab4d4b369c57fbd4",score:5}]}];</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...