@TavernaMo

Работа с сортировкой и работой приходящего JSON?

Ребят помогите решить данную задачу, накидал макет, но до конца не пойму условия, что б завершить

работа со списками JSON объектов произвольной структуры, отбирать объекты, содержащие ключи с определенными значениями, а также сортировать объекты по значениям, используя естественный порядок сортировки.
Например, если для данных вида:
{“data”: [{“name”: “Ben”, “email”: “Ben2@mail.com”},           {“name”: “Ben”, “email”: “Ben1@mail.com”},           {“name”: “Jane”, “email”: “jane@mail.com”}]} 


задать условие:

{“condition”: {“include”: [{“name”: “Ben”}], “sort_by”: [“email”]}} 

содержащее два правила - ​include и ​sort_by (где правило ​include принимает набор пар ключ:значение для проверки записей на соответствие, а правило​sort_by принимает набор ключей для сортировки), результатом будет объект, содержащий только записи с именем Ben​ , отсортированные по ключу ​email ​ :

{“result”: [{“name”: “Ben”, “email”: “Ben1@mail.com”},  {“name”: “John”, “email”: “Ben2@mail.com”}]} 

Планируя подход к дизайну кода приложения, необходимо предусмотреть возможность расширять функционал через добавление в код новых “модулей” с правилами. Важно, чтобы все модули имели между собой идентичную структуру, были изолированы друг от друга и остального кода приложения, и взаимодействовали с основным кодом, используя один и тот же подход. В качестве примера, вы можете добавить модуль с дополнительным правилом ​exclude ​ , которое будет отбрасывать записи, содержащие ключи с определенным значением.
Входящие параметры: JSON объект со списком данных (​data ​ ), и условием для обработки (​condition ​ ):
{“data”: [{“user”: “mike@mail.com”, “rating”: 20, “disabled”: false},            {“user”: “greg@mail.com”, “rating”: 14, “disabled”: false},           {“user”: “john@mail.com”, “rating”: 25, “disabled”: true}],  “condition”: {“exclude”: [{“disabled”: true}], “sort_by”: [“rating”]}} 

Выходные данные: JSON объект с данными полученными после применения условия обработки (​result ​ ):
{“result”: [{“user”: “greg@mail.com”, “rating”: 14, “disabled”: false},             {“user”: “mike@mail.com”, “rating”: 20, “disabled”: false}]} 


Накидал код, помогите довести до ума
const jsonRequest= 'data.json'

async function getResponse (file){
    const request = await fetch(file)
    if(request.ok){
       const response = await request.json()
       return response
    }else {
        console.error('Server is not response')
    }
}

const responseJson=getResponse(jsonRequest)
responseJson.then(
    data => {
        if(typeof data === 'object'){
            const keysData = Object.keys(data)
            if(keysData.includes("data")){
                if(Array.isArray(data.data) && data.data.length >=1){
                    const filterArr = data.data.filter(el => {
                        if(el?.name){
                            return el
                        }
                    })
                    console.log(filterArr)
                    const resArr = filterArr.sort(el=>{
                        console.log(el)
                    })
                }
            }
        }
    }
)
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
26 янв. 2021, в 15:11
200000 руб./за проект
26 янв. 2021, в 14:55
2000 руб./за проект
26 янв. 2021, в 14:48
900 руб./в час