W3cubDocs

/Web APIs

RTCStatsReport: keys() method

The keys() method of the RTCStatsReport interface returns a new iterator object that can be used to iterate through the keys for each element in the RTCStatsReport object, in insertion order.

The keys in the RTCStatsReport are unique string id values, which represent the monitored statistics objects from which the statistics are derived.

The method is otherwise the same as Map.prototype.keys().

Syntax

js

keys()

Return value

Examples

This example shows how to iterate through a RTCStatsReport using the iterator returned by keys().

Given a variable myPeerConnection, which is an instance of RTCPeerConnection, the code calls getStats() with await to wait for the statistics report. It then uses a for...of loop, with the iterator returned by keys(), to iterate through the IDs. Each ID is used to get the corresponding statistics dictionary. The properties of statistics objects with the type of outbound-rtp are logged to the console (other objects are discarded).

js

const stats = await myPeerConnection.getStats();

for (const id of stats.keys()) {
  // Get dictionary associated with key (id)
  const stat = stats.get(id);
  if (stat.type != "outbound-rtp") continue;
  Object.keys(stat).forEach((statName) => {
    console.log(`${statName}: ${report[statName]}`);
  });
}

Note that this examples is somewhat contrived. You could more easily iterate with entries() or values() and not have to map the ID to a value. You can even iterate the RTCStatsReport itself, as it has the @@iterator method!

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
keys 58 79 48 No 45 11 58 58 48 43 11 7.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport/keys