[
  {
    "id":100,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
  ...
]

Это мой образец объекта. Я получаю это из запроса приложения url fetch. Как я могу отфильтровать это, чтобы я мог опубликовать список только одного типа значения.

Например: если я хочу отфильтровать его по ключевому идентификатору, я хочу получить список, который выглядит примерно так: 100,101, ... Так далее.

Спасибо

2
Tejinder Singh 28 Окт 2019 в 06:49

4 ответа

Лучший ответ

Для функции стрелок (=>) не будут работать.

Использование:

function testIt()
{
  var sample = [
    {
      "id":100,
      "account_id":8,
      "name":"Out of Service",
      "default":false,
      "created_at":"2012-02-06T08:51:29.720-06:00",
      "updated_at":"2012-02-06T08:51:29.720-06:00"
    },
    {
      "id":101,
      "account_id":8,
      "name":"Out of Service",
      "default":false,
      "created_at":"2012-02-06T08:51:29.720-06:00",
      "updated_at":"2012-02-06T08:51:29.720-06:00"
    },
  ];  
    var result = sample.map(function(elt) { return elt.id; });
    Logger.log(result); //  [100.0, 101.0]

    }
1
Max Makhrov 28 Окт 2019 в 14:56
const extractFieldArray = (data, key) => data.map(d => d[key]);

// data это ваш объект, key это то, что вы хотите извлечь, например id

0
TuringCreep 28 Окт 2019 в 08:18

В качестве альтернативы вы можете использовать Array.reduce, хотя я не уверен, что есть какие-либо преимущества по сравнению с методом карты Yosvel:

const data = [
  {
    "id":100,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
  {
    "id":102,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
  {
    "id":105,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
]

const res = data.reduce(
  (acc, val) => {
    return [...acc, val.id]
  },
  []
)
console.log(res)
0
Jon B 28 Окт 2019 в 05:10

Вместо Array.prototype.filter() вы должны использовать Array.prototype.map ( )

Код:

const data = [
  {
    "id":100,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
  {
    "id":101,
    "account_id":8,
    "name":"Out of Service",
    "default":false,
    "created_at":"2012-02-06T08:51:29.720-06:00",
    "updated_at":"2012-02-06T08:51:29.720-06:00"
  },
]

const result = data.map(obj => obj.id)

console.log(result)
5
Yosvel Quintero 28 Окт 2019 в 07:54
58585578