Превратить массив объектов в список опций с меткой и значением - PullRequest
2 голосов
/ 03 августа 2020

Мне нужно преобразовать объект JSON в определенную структуру c, чтобы он передавался в тег select.

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

Вот пример панель выбора

Вот мой codeandbox

Вот структура Мне нужно:

const options = [
  { value: "Alabama A & M University", label: "Alabama A & M University" },
  { value: "Amridge University", label: "Amridge University" },
  { value: "University of Alabama at Birmingham", label: "University of Alabama at Birmingham" }
];

массив объектов с ключами значений и меток

Вот исходная структура:

const institutions = [
    {
      "institution": "Alabama A & M University"
    },
    {
      "institution": "University of Alabama at Birmingham"
    },
    {
      "institution": "Amridge University"
    }]

Вот как я манипулирую кодом :

export const transformCollegeJSON =(institutions = [])=> {
  let result = [];

    for(let k = 0; k <= institutions.length; k++){   
            result.push({
            "value":institutions[college]['institution'],
            "label":institutions[college]['institution']
        })
    }
    return result
}

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Просто:

const src = [
    {
      "institution": "Alabama A & M University"
    },
    {
      "institution": "University of Alabama at Birmingham"
    },
    {
      "institution": "Amridge University"
    }],
    
    result = src.map(({institution:value}) => ({value, label:value}))
    
console.log(result)    
0 голосов
/ 03 августа 2020

Если вы хотите, чтобы код работал, замените <= на < в скобках for и замените college на k

const transformCollegeJSON = (institutions = []) => {
    let result = [];

    for (let k = 0; k < institutions.length; k++) {
        result.push({
            "value": institutions[k]['institution'],
            "label": institutions[k]['institution']
        })
    }
    return result
}

const institutions = [{
        "institution": "Alabama A & M University"
    },
    {
        "institution": "University of Alabama at Birmingham"
    },
    {
        "institution": "Amridge University"
    }
]

console.log(transformCollegeJSON(institutions))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...