通过对象内部的数组遍历对象并获取键索引nodejs

我遇到了一个问题。 我有一个内部对象数组的对象,我想遍历它,并在每个数组中,我得到我想要的具体位置。

所以我想第一个元素得到[0] ,第二个我想[0] ,第三个我想要[2]和最后一个元素我想[0]

 values ************** [ anonymous { medium: [ 0.28, 0.26, 0.13 ] }, 4|wscontro | anonymous { medium: [ 13.51, 0.04, 0.75 ] }, 4|wscontro | anonymous { medium: [ 1527.58, 262.98, 27.4, 59.49 ] }, 4|wscontro | anonymous { medium: [ 60305.25, 0 ] } ] 4|wscontro | values type of -------- object 4|wscontro | values ************** [{"medium":[0.28,0.26,0.13]},{"medium":[13.51,0.04,0.75]},{"medium":[1527.58,262.98,27.4,59.49]},{"medium":[60305.25,0]}] 4|wscontro | item ---->>> anonymous { medium: [ 0.28, 0.26, 0.13 ] } 4|wscontro | item ---->>> anonymous { medium: [ 13.51, 0.04, 0.75 ] } 4|wscontro | item ---->>> anonymous { medium: [ 1527.58, 262.98, 27.4, 59.49 ] } 4|wscontro | item ---->>> anonymous { medium: [ 60305.25, 0 ] } 

我想得到

0.28,13.51,27.4,60305.25

我不知道如何得到我的forEach的关键字索引。

我的代码:

 var allPromises=[]; allPromises.push(Database.Alerts.getDeviceSystemByDeviceId("system.load", device.id)); allPromises.push(Database.Alerts.getDeviceSystemByDeviceId("disk_space.sda3", device.id)); allPromises.push(Database.Alerts.getDeviceSystemByDeviceId("system.ram", device.id)); allPromises.push(Database.Alerts.getDeviceSystemByDeviceId("platform.temperatures", device.id)); Promise.all(allPromises).then(function(values){ console.log("values **************", values); console.log("values type of --------", typeof(values)); console.log("values **************", JSON.stringify(values)); values.forEach(function(item){ console.log("item ---->>> ", item); }); 

将一个索引参数添加到forEach中调用的函数中:

 values.forEach(function(item, index){ console.log("item ---->>> ", item); console.log("index --->>> ", index); }); 

Array.prototype.forEachArray.prototype.map实际上可以给你索引作为callback的第二个参数。 正如你想找回几个数字(也许在一个数组中),那么.map适合你的需求相当不错。

 const relevantValues = values.map(function(item, index){ if(index == 2) { return item.medium[2] } else { return item.medium.[0] } }); 

这将使相关价值相等[0.28, 13.51, 27.4, 60305.25]