To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.
This is a new technology, part of the ECMAScript 2015 (ES6) standard .
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.
Metoda fill() uzupełnia wszystkie elementy tablicy, zaczynając od indeksu początkowego
(start) aż po indks końcowy (end) statyczną wartością (value).
Składnia
arr.fill(value[, start = 0[, end = this.length]])
Parameters
value
- Wartość, którą wypełniana będzie tablica.
start
- Opcjonalnie. Index początkowy.
end
- Opcjonalnie. Index końcowy.
Opis
Przedział elementów do wypełnienia to: [start
, end
).
Metoda
fill
przyjmuje do trzech parametrów value
, start
i end
. Argumenty start i
end
są opcjonalne i przyjmują, odpowiednio, 0
i długość (length)
obiektu this
.
Jeżeli parametr start
jest ujemny, jest to traktowane jako length+start
gdzie length
jest liczbą elementów tablicy. Jeżeli parametr end
jest negatywny, jest to traktowane jako length+end
.
Funkcja fill została świdomie zaprojektowana jako generyczna, przez co nie wymaga, by wartość this była obiektem typu Array.
Metoda fill jest zmienna (ang. mutalbe), metoda ta nie zwraca kopii this, a oryginalny obiekt po modyfikacjach.
Przykłady
[1, 2, 3].fill(4); // [4, 4, 4] [1, 2, 3].fill(4, 1); // [1, 4, 4] [1, 2, 3].fill(4, 1, 2); // [1, 4, 3] [1, 2, 3].fill(4, 1, 1); // [1, 2, 3] [1, 2, 3].fill(4, -3, -2); // [4, 2, 3] [1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3] [].fill.call({ length: 3 }, 4); // {0: 4, 1: 4, 2: 4, length: 3}
Polyfill
if (!Array.prototype.fill) { Array.prototype.fill = function(value) { // Steps 1-2. if (this == null) { throw new TypeError('this is null or not defined'); } var O = Object(this); // Steps 3-5. var len = O.length >>> 0; // Steps 6-7. var start = arguments[1]; var relativeStart = start >> 0; // Step 8. var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Steps 9-10. var end = arguments[2]; var relativeEnd = end === undefined ? len : end >> 0; // Step 11. var final = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Step 12. while (k < final) { O[k] = value; k++; } // Step 13. return O; }; }
Specyfikacja
Specyfikacja | Status | Komentarz |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Array.prototype.fill' in that specification. |
Standard | Definicja początkowa |
Kompatybilność z przeglądarkami
Funckjonalność | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Wsparcie podstawowe | 36 [1] | 31 (31) | Not supported | Not supported | 7.1 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Wsparcie podstawowe | Not supported | Not supported | 31.0 (31) | Not supported | Not supported | 8.0 |
[1] The feature is available behind a preference. In chrome://flags, activate the entry “Enable Experimental JavaScript”.