Ребят помогите решить данную задачу, накидал макет, но до конца не пойму условия, что б завершить
работа со списками 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)
})
}
}
}
}
)