web api instance method
XRInputSourceArray: forEach() method
Limited availability
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
forEach(callback)
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.
- : A
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.
- : An integer value providing the index into the array at which the element given
by
sourceListOptional- : The
XRInputSourceArrayobject which is being processed. If you don’t need this information, you may omit this.
- : The
- : A function to execute once for each entry in the
array
-
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.
- : The value to be used for
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 list, 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
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.
See also
- Inputs and input sources
- The
ArraymethodforEach() XRInputSource