Фильтровать данные JSON в узле JS
Я получаю следующие данные в виде JSON
[{
"Id": 1,
"sku": "abc",
"name": "Abbey Black Round Glass and Chrome 3 Tier Stand",
"qty": 14
},
{
"Id": 3,
"sku": "abc",
"name": "Ammy Black Glass and Chrome 5 Tier Corner Stand",
"qty": 0
},
{
"Id": 4,
"sku": "abc",
"name": "Barcelona Adjustable Gas Lift Black Bar Stool (Set of 2)",
"qty": 0
}
]
Я должен отфильтровать данные, чтобы он показывал только следующую пару ключ-значение
sku
qty
Ожидаемый результат будет
[{
"sku": "abc",
"qty": 14
},
{
"sku": "abc",
"qty": 0
},
{
"sku": "abc",
"qty": 23
}
]
Есть решение для фильтрации данных в таком формате? Я могу фильтровать данные на основе определенных значений, но я хочу, чтобы данные json содержали только две пары (sku,qty)
2 ответа
Решение
Ты можешь использовать Array.map()
с деструктуризацией массива, чтобы сделать ваш код простым и коротким:
var data = [
{
"Id": 1,
"sku": "abc",
"name": "Abbey Black Round Glass and Chrome 3 Tier Stand",
"qty": 14
},
{
"Id": 3,
"sku": "abc",
"name": "Ammy Black Glass and Chrome 5 Tier Corner Stand",
"qty": 0
},
{
"Id": 4,
"sku": "abc",
"name": "Barcelona Adjustable Gas Lift Black Bar Stool (Set of 2)",
"qty": 23
}
];
var res = data.map(({sku, qty}) => ({sku, qty}));
console.log(res);
Вы можете сделать это с картой, как это:
var array=[
{
"Id": 1,
"sku": "abc",
"name": "Abbey Black Round Glass and Chrome 3 Tier Stand",
"qty": 14
},
{
"Id": 3,
"sku": "abc",
"name": "Ammy Black Glass and Chrome 5 Tier Corner Stand",
"qty": 0
}];
array.map(function(item) {
delete item.Id;
delete item.name;
return item;
});