Как я могу получить массив определенных значений ключа?

#javascript #vuejs2

#javascript #vuejs2

Вопрос:

 var obj = [
  {
    "amount": " 12185",
    "job": "GAPA",
    "month": "JANUARY",
    "year": "2010"
  },
  {
    "amount": "147421",
    "job": "GAPA",
    "month": "MAY",
    "year": "2010"
  },
  {
    "amount": "2347",
    "job": "GAPA",
    "month": "AUGUST",
    "year": "2010"
  }
]
  

Как я могу получить все суммы, то есть '12185' , '147421' , '2347' .
Я пытался сделать это

 Object.keys(obj).map(key => obj[key])
  

Комментарии:

1. obj это не объект, это массив объектов. (Назовите это правильно и) используйте для этого правильные инструменты ( Array.prototype.map() )

Ответ №1:

Ваша obj переменная на самом деле является массивом. (обозначается фигурными скобками [] )

Вы можете использовать функцию map для массива, чтобы вернуть то, что вы запрашиваете.

 var amounts = obj.map(x => x.amount); // Array(3) [ " 12185", "147421", "2347" ]
  

Вы также можете добавить .trim() в конец x.amount, чтобы удалить все пробелы.

 var amounts = obj.map(x => x.amount.trim()); // Array(3) [ "12185", "147421", "2347" ]
  
 var obj = [
  {
    "amount": " 12185",
    "job": "GAPA",
    "month": "JANUARY",
    "year": "2010"
  },
  {
    "amount": "147421",
    "job": "GAPA",
    "month": "MAY",
    "year": "2010"
  },
  {
    "amount": "2347",
    "job": "GAPA",
    "month": "AUGUST",
    "year": "2010"
  }
];


var amounts = obj.map(x => x.amount);

console.log(keys); // Array(3) [ " 12185", "147421", "2347" ]
  

Ответ №2:

Я полагаю, вы ищете это

 var obj = [
  {
    "amount": " 12185",
    "job": "GAPA",
    "month": "JANUARY",
    "year": "2010"
  },
  {
    "amount": "147421",
    "job": "GAPA",
    "month": "MAY",
    "year": "2010"
  },
  {
    "amount": "2347",
    "job": "GAPA",
    "month": "AUGUST",
    "year": "2010"
  }
];

let amounts = obj.map(v => v.amount);
console.log(amounts);  

Ответ №3:

Ваш obj массив, вам понадобится:

 const vals = obj.map(entry => entry.amount); // ["12185", "147421", "2347"]