JavaScript Feature Reference: entries() Method On Arrays Web Browser Support Test

Last reviewed/updated: 12 Jan 2018 | Published: 12 Jan 2018 | Status: Active
Web browser support: Internet Explorer 10+, Edge 12+, Firefox 6+, Chrome 30+, Opera 17+

1. Introduction

In this web page there are two web browser JavaScript feature support tests; 1.) a feature implementation test, and 2.) a feature capability test. First, the implementation test is run. The implementation test determines if the web browser recognizes the JavaScript entries() method on arrays. The implementation test is a simple test for the presence of web browser support, and a definitive test for the absence of web browser support. If the web browser does not recognize the JavaScript entries() method on arrays, the testing is stopped and the implementation test reports: Fail (no support): The web browser does not recognize the JavaScript entries() method on arrays. The web browser does not support the JavaScript entries() method on arrays.

If the web browser recognizes the JavaScript entries() method on arrays, the capability test is run. The capability test determines if the web browser's implementation of the JavaScript entries() method on arrays includes support for at least one entries() method on arrays capability. The capability test is a more definitive, albeit not an all inclusive, test for the presence of web browser support. If the web browser's implementation of the JavaScript entries() method on arrays includes support for the tested capability, the capability test reports: Pass (at least partial/possibly full support): The web browser recognizes the JavaScript entries() method on arrays, and supports at least one entries() method on arrays capability. The web browser at least partially/possibly fully supports the JavaScript entries() method on arrays. Positive determination of full web browser support is beyond the scope of this test. If the web browser's implementation of the JavaScript entries() method on arrays does not include support for the tested capability, the capability test reports: Pass/Fail (partial support): The web browser recognizes the JavaScript entries() method on arrays, but does not support at least one entries() method on arrays capability. The web browser partially supports the JavaScript entries() method on arrays.

The web browser support test source code is shown in Section 2.1. The web browser support test source code is run in Section 2.2, which shows the web browser support test result.

1.1. entries() Method On Arrays Web Browser Support

  • Pass (at least partial/possibly full support): ED12+, FF28+, CH38+, OP25+.
  • Fail (no support): IE11-, SF5.1.7-.

1.2. Abbreviations

  • IE = Internet Explorer.
  • ED = Edge = EdgeHTML rendering engine (ED12+) and/or Edge browser (ED20+).
  • FF = Firefox.
  • SF = Safari.
  • CH = Chrome.
  • OP = Opera.

2. entries() Method On Arrays Web Browser Support Test

2.1. Web Browser Support Test Source Code

<p id='testId'><b>Fail</b> (no support): The web browser does not recognize the JavaScript <code>entries()</code> method on arrays. The web browser does not support the JavaScript <code>entries()</code> method on arrays.</p><!-- Hard code Fail because web browser no support error stops JavaScript execution. -->

<script>
var arrayViaArrayConstructor = new Array();
arrayViaArrayConstructor[0] = "a";
arrayViaArrayConstructor[1] = "b";
arrayViaArrayConstructor[2] = "c";
var arrayLiteral = ["d", "e", "f"];
// Get references to array built-in array iterator object called by entries() method. NOTE: entries() method can be considered a generator function. Call entries() generator functions. Each call returns a Generator object which inherits prototype from Object (window.Generator property does not exist) and is an iterator. Generator object has next() method property. Called by entries(), array iterator object next() method return object value property is set to two element array with first element set to array element numeric index and second element set to array element value.
var arrayViaArrayConstructorIteratorEntries = arrayViaArrayConstructor.entries();
var arrayLiteralIteratorEntries = arrayLiteral.entries();
var arrayViaArrayConstructorIteratorEntriesNextValues = [];
var arrayLiteralIteratorEntriesNextValues = [];
for (var i = 0; i < arrayViaArrayConstructor.length; i++){ // Identical to for (var entry of arrayViaArrayConstructor.entries()){console.log(entry);}. 1.) [0, "a"], 2.) [1, "b"], 3.) [2, "c"].
 arrayViaArrayConstructorIteratorEntriesNextValues[i] = arrayViaArrayConstructorIteratorEntries.next().value;
}
for (var i = 0; i < arrayLiteral.length; i++){ // Identical to for (var entry of arrayLiteral.entries()){console.log(entry);}. 1.) [0, "d"], 2.) [1, "e"], 3.) [2, "f"].
 arrayLiteralIteratorEntriesNextValues[i] = arrayLiteralIteratorEntries.next().value;
}
if (arrayViaArrayConstructor.entries && arrayLiteral.entries){
 var element = document.getElementById("testId");
 if ((typeof arrayViaArrayConstructorIteratorEntries === "object") && arrayViaArrayConstructorIteratorEntries instanceof Object && Object.prototype.isPrototypeOf(arrayViaArrayConstructorIteratorEntries) && Array.isArray(arrayViaArrayConstructorIteratorEntriesNextValues[0]) && (arrayViaArrayConstructorIteratorEntriesNextValues[0][0] === 0) && (arrayViaArrayConstructorIteratorEntriesNextValues[0][1] === "a") && (arrayViaArrayConstructorIteratorEntriesNextValues[1][0] === 1) && (arrayViaArrayConstructorIteratorEntriesNextValues[1][1] === "b") && (arrayViaArrayConstructorIteratorEntriesNextValues[2][0] === 2) && (arrayViaArrayConstructorIteratorEntriesNextValues[2][1] === "c") && (typeof arrayLiteralIteratorEntries === "object") && arrayLiteralIteratorEntries instanceof Object && Object.prototype.isPrototypeOf(arrayLiteralIteratorEntries) && Array.isArray(arrayLiteralIteratorEntriesNextValues[0]) && (arrayLiteralIteratorEntriesNextValues[0][0] === 0) && (arrayLiteralIteratorEntriesNextValues[0][1] === "d") && (arrayLiteralIteratorEntriesNextValues[1][0] === 1) && (arrayLiteralIteratorEntriesNextValues[1][1] === "e") && (arrayLiteralIteratorEntriesNextValues[2][0] === 2) && (arrayLiteralIteratorEntriesNextValues[2][1] === "f")){
  element.innerHTML = "<b>Pass</b> (at least partial/possibly full support): The web browser recognizes the JavaScript <code>entries()</code> method on arrays, and supports at least one <code>entries()</code> method on arrays capability. The web browser at least partially/possibly fully supports the JavaScript <code>entries()</code> method on arrays. Positive determination of full web browser support is beyond the scope of this test.";
 } else {
  element.innerHTML = "<b>Pass/Fail</b> (partial support): The web browser recognizes the JavaScript <code>entries()</code> method on arrays, but does not support at least one <code>entries()</code> method on arrays capability. The web browser partially supports the JavaScript <code>entries()</code> method on arrays.";
 }
}
</script>

2.2. Web Browser Support Test Result

Fail (no support): The web browser does not recognize the JavaScript entries() method on arrays. The web browser does not support the JavaScript entries() method on arrays.


3. Resources And Additional Information