Как отрезать ненужный или отличающийся кусок объектов?
Застрял на следующем моменте. У меня есть файл json с объектами. В нем перечислены условные объекты парней с кэшом в кармане. Есть объект в котором ошибка. При работе с данным массивом объектов возникает ошибка из-за разной структуры.
Соответственно необходимо уладить косячный кусок. Например так:
let arr = response.data.response
arr.splice(0, 2)
После данной манипуляции все работает, но возникает вопрос, а что если ошибка будет в разных местах или в разных объемах. Как сделать универсальный резак/фильтр?
У нас есть ключ "error" и он заполнен в случае ошибки. Можно сделать цикл, но как искать ключ и положить в переменную i номер ключа? Можно по заполненности ключа, а как быть с номером переменной?
Остановился на данном этапе:
for(let i = 0; i < response.data.response.length; i++){
if (typeof response.data.response['error'] !== "undefined") {
arr = response.data.response
} arr = response.data.response.splice(0, i)
}
Но у меня получается затуп((
JSON
{
"status": 0,
"response": [
{
"name": "Петя",
"id": "1",
"money": [
{
"w_money": "RUB",
"W__cashe": "1000"
},
{
"w_money": "DOL",
"W__cashe": "50"
}]
},
{
"name": "Вася",
"id": "2",
"money": [
{
"w_money": "RUB",
"W__cashe": "1000"
},
{
"w_money": "DOL",
"W__cashe": "50"
}]
},
{
"error": "connect no"
},
{
"name": "Игорь",
"id": "3",
"money": [
{
"w_money": "RUB",
"W__cashe": "1"
},
{
"w_money": "DOL",
"W__cashe": "1000"
}]
}]
}
Ответы (1 шт):
Во-первых, хочу уточнить, что в нулевом элементе массива свойство объекта money, а в других случаях wallets. Если это опечатка, то нет проблемы, а если нет, тогда через Array.prototype.map - нужно будет прогнать.
Во-вторых, это удобно делается через Array.prorotype.filter
yourJson.response.filter((item)=>{
return typeof(item.error) === 'undefined';
});
P.S. Если Вам нужна поддержка версиях IE (на старом движке), вместо стрелочных функций используйте обычную function(){}.