Фильтровать данные 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; 
});
Другие вопросы по тегам