簡體   English   中英

遍歷帶有內部對象數組的對象,並獲取鍵索引nodejs

[英]Iterate through objects with array of objects inside and get keys index 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實際上可以為您提供索引作為回調中的第二個參數。 當您想獲取多個數字(可能是數組)時, .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]等於[0.28, 13.51, 27.4, 60305.25]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM