Я новичок в javascript и изо всех сил пытаюсь найти ответ на этот вопрос.Преобразование массива в javascript
У меня есть объект со списком сетевых интерфейсов и деталей. Я предполагаю, что это массив объектов ?:
> console.log(net);
[ { Interface: 'wlan0:',
bytes: { Receive: '26087318', Transmit: '8475' },
packets: { Receive: '379665', Transmit: '52' },
errs: { Receive: '0', Transmit: '0' },
drop: { Receive: '0', Transmit: '0' },
fifo: { Receive: '0', Transmit: '0' },
frame: { Receive: '0' },
compressed: { Receive: '0', Transmit: '0' },
multicast: { Receive: '0' },
colls: { Transmit: '0' },
carrier: { Transmit: '0' } },
{ Interface: 'lo:',
bytes: { Receive: '228483', Transmit: '228483' },
packets: { Receive: '4046', Transmit: '4046' },
errs: { Receive: '0', Transmit: '0' },
drop: { Receive: '0', Transmit: '0' },
fifo: { Receive: '0', Transmit: '0' },
frame: { Receive: '0' },
compressed: { Receive: '0', Transmit: '0' },
multicast: { Receive: '0' },
colls: { Transmit: '0' },
carrier: { Transmit: '0' } },
{ Interface: 'mon0:',
bytes: { Receive: '285735889', Transmit: '0' },
packets: { Receive: '1753373', Transmit: '0' },
errs: { Receive: '0', Transmit: '0' },
drop: { Receive: '1765559', Transmit: '0' },
fifo: { Receive: '0', Transmit: '0' },
frame: { Receive: '0' },
compressed: { Receive: '0', Transmit: '0' },
multicast: { Receive: '0' },
colls: { Transmit: '0' },
carrier: { Transmit: '0' } },
{ Interface: 'eth0:',
bytes: { Receive: '6982603', Transmit: '22526425' },
packets: { Receive: '58906', Transmit: '384822' },
errs: { Receive: '0', Transmit: '0' },
drop: { Receive: '0', Transmit: '0' },
fifo: { Receive: '0', Transmit: '0' },
frame: { Receive: '0' },
compressed: { Receive: '0', Transmit: '0' },
multicast: { Receive: '0' },
colls: { Transmit: '0' },
carrier: { Transmit: '0' } } ]
Я хочу, чтобы преобразовать в этот результат:
> console.log(result);
{ lo: 'lo',
mon0: 'mon0',
eth0: 'eth0',
wlan0: 'wlan0' }
Я попытался несколько вещей в консоли узел REPL, но я не получаю нигде :
> var result = {};
undefined
> Object.keys(net).forEach(function(ifname) {
... result[ifname] = ifname;
... });
undefined
> result
{ '0': '0', '1': '1', '2': '2', '3': '3' }
Другая попытка:
> procfs.net(function(err,net){
... result = net.map(function(a) {return a.Interface;})
... });
undefined
> console.log(result);
[ 'wlan0:', 'lo:', 'mon0:', 'eth0:' ]
undefined
я могу ссылаться на элементы данных, требуемые по отдельности, просто изо всех сил, чтобы поставить все это вместе:
> net[0].Interface
'wlan0:'
> net[1].Interface
'lo:'
> net[2].Interface
'mon0:'
> net[3].Interface
'eth0:'
Помощь оценили!
В результате «[wlan0:», «lo:», «mon0:», «eth0:"] ", а не" {lo: 'lo', mon0: 'mon0', eth0: 'eth0' , wlan0: 'wlan0'}} ", тогда как это может работать так же хорошо (в зависимости от дальнейшей логики), это все равно другой вывод. – zeppelin