Array: length
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
length 㯠Array ã¤ã³ã¹ã¿ã³ã¹ã®ãã¼ã¿ããããã£ã§ãé
åã®è¦ç´ ã®æ°ã表ãã¾ããå¤ã¯ç¬¦å·ãªã 32 ãããæ´æ°ã§ã常ã«é
åã®æã大ããªã¤ã³ããã¯ã¹ãããæ°å¤çã«å¤§ãããªãã¾ãã
試ãã¦ã¿ã¾ããã
const clothing = ["shoes", "shirts", "socks", "sweaters"];
console.log(clothing.length);
// äºæ³ãããçµæ: 4
å¤
éè² ã®æ´æ°ã§ã 232 æªæºã§ãã
Array: length ã®ããããã£å±æ§ | |
|---|---|
| æ¸è¾¼å¯è½ | å¯ |
| åæå¯è½ | ä¸å¯ |
| è¨å®å¯è½ | ä¸å¯ |
解説
length ããããã£ã®å¤ã¯éè² ã®æ´æ°ã§ã 232 æªæºã®å¤ã§ãã
const listA = [1, 2, 3];
const listB = new Array(6);
console.log(listA.length);
// 3
console.log(listB.length);
// 6
listB.length = 2 ** 32; // 4294967296
// RangeError: Invalid array length
const listC = new Array(-100); // è² ã®æ°ã¯è¨±ãããªã
// RangeError: Invalid array length
é
åãªãã¸ã§ã¯ã㯠length ããããã£ãç£è¦ããèªåçã« length å¤ãé
åã®ã³ã³ãã³ãã¨åæããã¾ããããã¯ã次ã®ãã¨ãæå³ãã¾ãã
- æ°ãã
lengthãè¶ ããè¦ç´ ã¯åé¤ããã¾ãã - é
åã®ã¤ã³ããã¯ã¹ï¼232 ããå°ããéè² ã®æ´æ°ï¼ãç¾å¨ã®
lengthããã大ããå¤ã«è¨å®ããã«ã¯ãé åãæ¡å¼µãã¾ããlengthããããã£ã¯æ°ããæã大ããã¤ã³ããã¯ã¹ãåæ ããããã«å¢å ãã¾ãã lengthã«ç¡å¹ãªå¤ï¼ä¾ãã°ãè² ã®æ°ãéæ´æ°ï¼ãè¨å®ããã¨ãRangeErrorä¾å¤ãçºçãã¾ãã
length ã«ç¾å¨ã®é·ãããã大ããªå¤ãè¨å®ããã¨ãé
åã¯å®éã®å¤ã undefined ã§ã¯ãªãã空ã®ã¹ãããã追å ãããã¨ã§æ¡å¼µããã¾ãã空ã®ã¹ãããã¯é
åã¡ã½ããã¨ç¹å¥ãªå¯¾è©±ããã¾ããé
åã¡ã½ããã¨ç©ºã®ã¹ããããåç
§ãã¦ãã ããã
const arr = [1, 2];
console.log(arr);
// [ 1, 2 ]
arr.length = 5; // ç¾å¨ 2 ã®é
åã®é·ãã 5 ã«è¨å®
console.log(arr);
// [ 1, 2, <3 ã¤ã®ç©ºã¢ã¤ãã > ]
arr.forEach((element) => console.log(element));
// 1
// 2
詳細㯠length ã¨æ°å¤ããããã£ã¨ã®é¢ä¿ãã覧ãã ããã
ä¾
>é åãå復å¦çãã
以ä¸ã®ä¾ã§ã¯ãé
å numbers ãããã¤ã®è¦ç´ ãæã£ã¦ããããç¥ãããã« length ããããã£ãè¦ããã¨ã§ãé
åãå復å¦çãã¾ãããã®éããããã®å¤ã¯ 2 åããã¾ãã
const numbers = [1, 2, 3, 4, 5];
const length = numbers.length;
for (let i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers 㯠[2, 4, 6, 8, 10] ã¨ãªã£ã
é åã®ç縮
以ä¸ã®ä¾ã¯é
å numbers ã®è¦ç´ æ°ã 3 ãã大ãããã©ããã調ã¹ã¦ã大ãããªããã® length ã 3 ã¨ãã¦ãã¾ãã
const numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
console.log(numbers[3]); // undefined; the extra elements are deleted
åºå®é·ã®ç©ºã®é åã使
length ã«ç¾å¨ã®é·ã以ä¸ã®å¤ãè¨å®ããã¨ãçé
åã使ãã¾ãã
const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]
length ã®æ¸ãè¾¼ã¿ä¸å¯ã®é å
length ããããã£ã¯ãç¾å¨ã®é·ããè¶
ãã¦è¦ç´ ã追å ãããã¨ãé
åã«ãã£ã¦èªåçã«æ´æ°ããã¾ãããã length ããããã£ãæ¸ãè¾¼ã¿ä¸å¯ã«ããã¨ãé
åã¯ãããæ´æ°ã§ããªããªãã¾ããããã¯å³æ ¼ã¢ã¼ãã§ã¯ã¨ã©ã¼ãçºçãã¾ãã
"use strict";
const numbers = [1, 2, 3, 4, 5];
Object.defineProperty(numbers, "length", { writable: false });
numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
numbers.push(5); // // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-properties-of-array-instances-length> |