мой массив javascript отображается как отдельные символы - PullRequest
0 голосов
/ 24 марта 2020

Я работаю с кодированием javascript при создании нового поиска в Zapier и мне нужно получить массив, содержащий дочерние элементы дочернего элемента - имени категории.

Мой первоначальный вызов и возврат дают код, как показано ниже в «Return 1»

return [results];

Однако, как я уже сказал, мне нужны имена в категориях, поэтому я добавил в свой код :

for (i=0; i<=2; i++){
    ans[i] = results.projects[0].categories[i].name;
}
return [ans];

но теперь мой возвращенный массив содержит буквенные символы в качестве элементов. (см. Возврат 2 ниже) Что мне не хватает?

Возврат 1:

{
  "id": 2,
  "name": "Test Project 1",
  "status": {
    "id": 10,
    "name": "development",
    "label": "development"
  },
  ...
  "categories": [
    {
      "id": 1,
      "name": "General",
      "project": {
        "id": 0,
        "name": null
      }
    },
    {
      "id": 2,
      "name": "Test Global Category 1",
      "project": {
        "id": 0,
        "name": null
      }
    },
    }
  ]
} 

Возврат 2:

[
  {
    "0": "G",
    "1": "e",
    "2": "n",
    "3": "e",
    "4": "r",
    "5": "a",
    "6": "l"
  },
  {
    "0": "T",
    "1": "e",
    "2": "s",
    "3": "t",
    "4": " ",
    "5": "G",
    "6": "l",
    "7": "o",
    "8": "b",
    "9": "a",
    "10": "l",
    "11": " ",
    "12": "C",
    "13": "a",
    "14": "t",
    "15": "e",
    "16": "g",
    "17": "o",
    "18": "r",
    "19": "y",
    "20": " ",
    "21": "1"
  }]

Ответы [ 2 ]

1 голос
/ 25 марта 2020

    let projects = {
      "id": 2,
      "name": "Test Project 1",
      "status": {
        "id": 10,
        "name": "development",
        "label": "development"
      },
      "categories": [
        {
          "id": 1,
          "name": "General",
          "project": {
            "id": 0,
            "name": null
          }
        },
        {
          "id": 2,
          "name": "Test Global Category 1",
          "project": {
            "id": 0,
            "name": null
          }
        },
      ]
    } 
    let names = projects.categories.map((x)=>{
    return (x.name);
    })

    console.log(names)

Здесь мы получаем доступ к категориям из программного объекта и помещаем все имена каждой категории в массив. Если у вас более одной программы, то через каждую из программ l oop получите все названия категорий.

0 голосов
/ 25 марта 2020

Если вы просто пытаетесь добраться до вложенных JSON данных, вам не нужно повторять с помощью for для l oop.

Установить «категории» равными переменной, а затем использовать «точку» нотация 'для доступа к' имени '.

Что-то вроде' let category = res.data.categories '. Затем получите доступ к «имени», как это «category.name».

Вероятно, нет необходимости использовать для l oop.

...