XRInputSourceArray.forEach()
The XRInputSourceArray method forEach() executes the specified callback once for each input source in the array, starting at index 0 and progressing until the end of the list.
Syntax
xrInputSourceArray.forEach(callback, thisArg);
Parameters
callback-
A function to execute once for each entry in the array
xrInputSourceArray. The callback accepts up to three parameters:currentValue-
A
XRInputSourceobject which is the value of the item from within thexrInputSourceArraywhich is currently being processed. -
currentIndexOptional -
An integer value providing the index into the array at which the element given by
currentValueis located. If you don't need to know the index number, you can omit this. -
sourceListOptional -
The
XRInputSourceArrayobject which is being processed. If you don't need this information, you may omit this.
-
thisArgOptional -
The value to be used for
thiswhile executing the callback. Note that if you use arrow function notation (=>) to provide the callback, you can omitthisArg, since all arrow functions lexically bindthis.
Return value
Undefined.
Examples
This example snippet gets the list of inputs for a session and tries to handle each type of input device it supports using.
let inputSources = xrSession.inputSources; inputSources.forEach((input) => { if (input.gamepad) { checkGamepad(input.gamepad); } else { if (input.targetRayMode === "tracked-pointer" && input.handedness === player.handedness) { /* Handle main hand controller */ handleMainHandInput(input); } else { /* Handle other inputs */ } } });
For each input in the llist, the callback dispatches gamepad inputs to a checkGamepad() with the input's Gamepad object, taken from its gamepad property, as an input
For other devices, we look for tracked-pointer devices in the player's main hand, dispatching those to a handleMainHandInput() method.
Specifications
No specification data found for api.XRInputSourceArray.forEach.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
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 | |
forEach |
79 |
79 |
No |
No |
No |
No |
No |
79 |
No |
No |
No |
11.2 |
See also
- Inputs and input sources
- The
ArraymethodforEach() XRInputSource
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRInputSourceArray/forEach