Как преобразовать вложенный массив объекта в массив строк в Reactjs? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу отобразить и преобразовать приведенную ниже структуру JSON в массив простой строки, но получаю неопределенную ошибку при отображении.

Структура JSON:

var yourArray = [ 
            {
            "options": [
                {
                    'id':1,
                    'name':'All'
                },{
                    'id':2,
                    'name':'Javascript'
                },{
                    'id':2000,
                    'name':'Ruby'
                }    
            ]
            }
        ];

Попытка сопоставить следующим образом:

var newArray = yourArray.map( function( el ){ 
    yourArray.options.map( function( eln ){ 
      return eln.name; 
    })
});
console.log (newArray);

Примечание: следуя этому примеру Как преобразовать массив объектов javascript в массив строк нужного мне атрибута объекта?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

вот простое решение с использованием карты, так как опция находится внутри первого индекса, вы можете использовать yourArray[0]

var yourArray = [ 
            {
            "options": [
                {
                    'id':1,
                    'name':'All'
                },{
                    'id':2,
                    'name':'Javascript'
                },{
                    'id':2000,
                    'name':'Ruby'
                }    
            ]
            }
        ];
        
var newArray = yourArray[0].options.map(i => i.name)
console.log(newArray)
0 голосов
/ 09 февраля 2019

Две проблемы, которые у вас были в вашем коде

  1. Здесь не было возврата var newArray = yourArray.map( function( el ){ el.options.map( function( eln ).
  2. секунда yourArray.options вам нужно получить доступ с помощью индекса или el, который выВы получаете вызов функции в качестве аргумента.

var yourArray = [{"options": [{'id':1,'name':'All'},{'id':2,'name':'Javascript'},{'id':2000,'name':'Ruby'}]}];

var newArray = yourArray.map( function( el ){ 
  return el.options.map( function( eln ){ 
    return eln.name; 
  })
});
console.log (newArray);

ОБНОВЛЕНИЕ:

Спасибо за ответ, извините, что беспокою вас снова, Моя фактическая структура JSON выглядит следующим образом {"brand": [{"options": [{"catgeory_name": "Sigma"}, {"catgeory_name": "Footner"}]}]} Как мы можем отобразить это, чтобы получить вывод, подобный этому ["Sigma", "Footner"], потому чтоЯ все еще получаю неопределенную ошибку при отображении

let data = { "brand": [ {"options": [{"catgeory_name": "Sigma"},{"catgeory_name": "Footner"}]} ] }

let op = data.brand[0].options.map(({catgeory_name})=>catgeory_name)

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