Реагировать на доступ к значениям массива, используя динамическое c именование переменных - PullRequest
0 голосов
/ 03 августа 2020

Вот простая распечатка значений массива:

export default function App() {
  var data = [{name:'Jhon', age:28, city:'HO'},
            {name:'Onhj', age:82, city:'HN'},
            {name:'Nohj', age:41, city:'IT'}
           ];

    data.map(({name, age}, i) => {
       console.log(name + ' ' + age);
    })
 }

Теперь я получаю имена значений в другом массиве, как я могу распечатать значения массива, используя переменная:

    export default function App() {
      var data = [{name:'Jhon', age:28, city:'HO'},
                {name:'Onhj', age:82, city:'HN'},
                {name:'Nohj', age:41, city:'IT'}
               ];
     //Here are the keys of the array
     var colNames =  ['name','age'];
    
        data.map(({colNames}, i) => {
        //So I can do something like
           console.log(colNames[0] + ' ' + colNames[1]);
        })
}

Спасибо!

Ответы [ 2 ]

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

Согласно вашему коду, вы пытаетесь деструктурировать свойство colNames из объекта данных, которого нет в объекте данных.

Вы можете использовать приведенные ниже фрагменты для печати значений из объекта данных.

export default function App() {
    var data = [{name:'Jhon', age:28, city:'HO'},
           {name:'Onhj', age:82, city:'HN'},
           {name:'Nohj', age:41, city:'IT'}
           ];
    //Here are the keys of the array
    var colNames =  ['name','age'];

    data.map((item, i) => {
        //So I can do something like
        console.log(item[colNames[0]] + ' ' + item[colNames[1]]);
    })
}
0 голосов
/ 03 августа 2020

Я понимаю, что вы хотите:

export default function App() {
  var data = [{name:'Jhon', age:28, city:'HO'},
            {name:'Onhj', age:82, city:'HN'},
            {name:'Nohj', age:41, city:'IT'}
           ];
  
    // assuming you got the colNames from somewhere..
    data.map(item => {
       const text = colNames.map(c => item[c]).join(' ');
       console.log(text);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...