Array.prototype.fill()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´9æ.
fill() 㯠Array ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãã¤ã³ããã¯ã¹ã®ç¯å²å
ã«ããé
åã®ãã¹ã¦ã®è¦ç´ ãä¸å®ã®å¤ã«å¤æ´ãã¾ããããã¯å¤æ´ããé
åãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const array = [1, 2, 3, 4];
// 0 ã§ä½ç½® 2 ããä½ç½® 4 ã¾ã§ãåãã
console.log(array.fill(0, 2, 4));
// äºæ³ãããçµæ: Array [1, 2, 0, 0]
// Fill with 5 from position 1
console.log(array.fill(5, 1));
// äºæ³ãããçµæ: Array [1, 5, 5, 5]
console.log(array.fill(6));
// äºæ³ãããçµæ: Array [6, 6, 6, 6]
æ§æ
fill(value)
fill(value, start)
fill(value, start, end)
弿°
value-
é åãåããå¤ããã
valueããªãã¸ã§ã¯ãã§ããã°ãé åã®ããããã®è¦ç´ ã¯ãã®ãªãã¸ã§ã¯ããåç §ãã¾ãã startçç¥å¯-
åãå§ããä½ç½®ã®ã¼ãããå§ã¾ãã¤ã³ããã¯ã¹ã§ãæ´æ°ã«å¤æããã¾ãã
- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
-array.length <= start < 0ã®å ´åãstart + array.lengthã使ç¨ããã¾ãã start < -array.lengthã¾ãã¯startãçç¥ãããå ´åã¯0ã使ç¨ããã¾ããstart >= array.lengthã®å ´åãåããããã¤ã³ããã¯ã¹ã¯ããã¾ããã
- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
endçç¥å¯-
åãçµããä½ç½®ã®ã¼ãããå§ã¾ãã¤ã³ããã¯ã¹ã§ãæ´æ°ã«å¤æããã¾ãã
fill()ã¯endãå«ã¾ãããã®ç´åã¾ã§ãåãã¾ãã- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
end < 0ã®å ´åãend + array.lengthã使ç¨ããã¾ãã end < -array.lengthã®å ´åã¯0ã使ç¨ããã¾ããend >= array.lengthã¾ãã¯endãçç¥ããã¦ãããundefinedã®å ´åãarray.lengthã使ç¨ãããæ«å°¾ã¾ã§ã®ãã¹ã¦ã®ã¤ã³ããã¯ã¹ãåãããã¾ããendãstartã示ãä½ç½®ãããåã¾ãã¯ãã®ä½ç½®ã§ãããã¨ãæå³ããå ´åãä½ãåãããã¾ããã
- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
è¿å¤
value ã§åãããã¦å¤æ´ãããé
åã§ãã
解説
fill() ã¡ã½ããã¯å¤æ´ã¡ã½ããã§ãããã㯠this ã®é·ãã¯å¤æ´ãã¾ãããã this ã®ã³ã³ãã³ãã¯å¤æ´ãã¾ãã
fill() ã¡ã½ããã¯çé
åã®ç©ºã®ã¹ããããã value ã§åãã¾ãã
fill() ã¡ã½ããã¯æ±ç¨çã§ãããã®ã¡ã½ãã㯠this ã®å¤ã« length ããããã£ã¨æ´æ°ã®ãã¼ãæã£ãããããã£ããããã¨ã ããæ±ãã¾ããæååãé
å風ã®ãã®ã§ãããæååã¯ä¸å¤ãªã®ã§ããã®ã¡ã½ãããé©ç¨ããã®ã¯é©ãã¦ãã¾ããã
ã¡ã¢:
Array.prototype.fill() ã空ã®é
åã«å¯¾ãã¦ä½¿ç¨ããã¨ãé
åã«å¤æ´ãããã®ããªãã®ã§ä½ã夿´ããã¾ããã
é
åã宣è¨ããéã« Array.prototype.fill() ã使ç¨ããå ´åã¯ãã¹ããããé
åã«å²ãå½ã¦ãããã«ãã¦ãã ããã
ä¾ã¯ãã¡ãã
ä¾
>fill ã®ä½¿ç¨
console.log([1, 2, 3].fill(4)); // [4, 4, 4]
console.log([1, 2, 3].fill(4, 1)); // [1, 4, 4]
console.log([1, 2, 3].fill(4, 1, 2)); // [1, 4, 3]
console.log([1, 2, 3].fill(4, 1, 1)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 3)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, -3, -2)); // [4, 2, 3]
console.log([1, 2, 3].fill(4, NaN, NaN)); // [1, 2, 3]
console.log([1, 2, 3].fill(4, 3, 5)); // [1, 2, 3]
console.log(Array(3).fill(4)); // [4, 4, 4]
// é
åã®åã¹ãããããåç
§ããããåä¸ã®ãªãã¸ã§ã¯ãã
const arr = Array(3).fill({}); // [{}, {}, {}]
arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
fill() ã使ç¨ãã¦ãã¹ã¦ 1 ã®è¡åã使
ãã®ä¾ã§ã¯ã Octave ã MATLAB ã® ones() 颿°ã®ããã«ããã¹ã¦ 1 ã®è¡åã使ããæ¹æ³ã示ãã¦ãã¾ãã
const arr = new Array(3);
for (let i = 0; i < arr.length; i++) {
arr[i] = new Array(4).fill(1); // 大ããã 4ãå
容ã 1 ã®é
åã使
}
arr[0][0] = 10;
console.log(arr[0][0]); // 10
console.log(arr[1][0]); // 1
console.log(arr[2][0]); // 1
fill() ã使ç¨ãã¦ç©ºã®é åãçæ
ãã®ä¾ã§ã¯ãé
åã«å¤ãå
¥åãããã¹ã¦ã®è¦ç´ ã«è©³ç´°ãªå¤ãè¨å®ããæ¹æ³ã示ãã¦ãã¾ãã
end 弿°ãæå®ããå¿
è¦ã¯ããã¾ããã
const tempGirls = Array(5).fill("girl", 0);
é
åã¯æåã¯ã¤ã³ããã¯ã¹ãå²ãå½ã¦ããã¦ããªãçé
åã§ãããã¨ã«æ³¨æãã¦ãã ããã fill() ã§ãã®é
åãåãããã¨ãã§ãã¾ãã
é åã§ãªããªãã¸ã§ã¯ãã«å¯¾ãã fill() ã®å¼ã³åºã
fill() ã¡ã½ãã㯠this ã® length ããããã£ãèªã¿åãã start ãã end ã¾ã§ã®åæ´æ°ãã¼ã®ããããã£ã®å¤ãè¨å®ãã¾ãã
const arrayLike = { length: 2 };
console.log(Array.prototype.fill.call(arrayLike, 1));
// { '0': 1, '1': 1, length: 2 }
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.fill> |