files/en-us/web/api/rtcstatsreport/foreach/index.md
{{APIRef("WebRTC")}}
The forEach() method of the {{domxref("RTCStatsReport")}} interface executes a provided function once for each key/value pair in the RTCStatsReport object, in insertion order.
The keys are unique id values for the monitored statistics objects from which the statistics are derived, and the associated values are statistics dictionary objects.
The method is otherwise the same as {{jsxref("Map.prototype.forEach()")}}.
forEach(callbackFn)
forEach(callbackFn, thisArg)
callbackFn
report
id
map
thisArg {{optional_inline}}
this when executing callbackFn.{{jsxref("undefined")}}.
Given a variable myPeerConnection, which is an instance of RTCPeerConnection, the code calls getStats() with await to wait for the statistics report.
It then iterates the report using RTCStatsReport.forEach(), and filters the dictionaries for just those reports that have the type of inbound-rtp and kind of video.
For matching dictionaries it logs the framesPerSecond property of the inbound video.
const stats = await myPeerConnection.getStats();
stats.forEach((report) => {
if (report.type === "inbound-rtp" && report.kind === "video") {
// Log the frame rate
console.log(report.framesPerSecond);
}
});
{{Specifications}}
{{Compat}}