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 ä½å
ã䏿大æ¼è©²é£åæå¤§ç´¢å¼æ¸çæ£æ´æ¸ã
var items = ["shoes", "shirts", "socks", "sweaters"];
items.length;
// returns 4
æè¿°
length 屬æ§çå¼å¿
çºä¸æ£æ´æ¸ï¼å
¶å¼å¿
仿¼ 0 ï½ 2^32 (ä¸å
å«)ä¹é.
var namelistA = new Array(4294967296); //2^32 = 4294967296
var namelistC = new Array(-100); //è² æ¸
console.log(namelistA.length); //RangeError: Invalid array length
console.log(namelistC.length); //RangeError: Invalid array length
var namelistB = [];
namelistB.length = Math.pow(2, 32) - 1; //å°é·åº¦è¨å®ä»æ¼ 0 ~ 2^32 -1
console.log(namelistB.length);
//4294967295
ä½ å¯ä»¥ééæ¹è® length 屬æ§ä¾æ¹è®é£åçé·åº¦ãç¶ä½ éé length 屬æ§ä¾å¢å é£åçé·åº¦æï¼é£åä¸å¯¦éçå
ç´ ä¹æé¨ä¹å¢å ãèä¾ä¾èªªï¼ç¶ä½ å° array.length ç± 2 å¢å çº 3ï¼åæ¹åå¾è©²é£å峿æ 3 åå
ç´ ï¼è©²æ°å¢çå
ç´ åææ¯ä¸åä¸å¯è¿ä»£(non-iterable)ç空槽(empty slot)ã
const arr = [1, 2]; console.log(arr); // [ 1, 2 ] arr.length = 5; // å°arrçlengthç±2æ¹æ5 console.log(arr); // [ 1, 2, <3 empty items> ] arr.forEach(element => console.log(element)); // 空å ç´ ç¡æ³è¢«è¿ä»£ // 1 // 2
å¦ä¸æè¦ï¼length 屬æ§ä¸ç¡ç¶ä»£è¡¨é£å䏿æå·²å®ç¾©çå
ç´ åæ¸ãè©³è¦ length èæ¸å¼å±¬æ§çéä¿ã
Array.length ç屬æ§ç¹æ§ | |
|---|---|
| å¯å¯« | æ¯ |
| å¯åè | å¦ |
| å¯é ç½® | å¦ |
Writable: 妿æ¤å±¬æ§å¼çºfalseï¼å該屬æ§çå §å®¹å¼ç¡æ³è¢«æ¹åãConfigurable: 妿æ¤å±¬æ§å¼çºfalseï¼ä»»ä½åªé¤å±¬æ§ææ´æ¹å ¶å±¬æ§çæä½(Writable,Configurable, orEnumerable)çæå¤±æãEnumerable: 妿æ¤å±¬æ§å¼çºtrueï¼è©²å §å®¹å¼å¯å for æ for..in è¿´åè¿ä»£èçã
ç¯ä¾
>å°é£åé²è¡è¿ä»£èç
以ä¸ç¯ä¾ä¸, é£å numbers éé length 屬æ§é²è¡è¿ä»£æä½ï¼ä¸¦å°å
¶å
§å®¹å¼å åã
var numbers = [1, 2, 3, 4, 5];
var length = numbers.length;
for (var i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers å
§å®¹å¼è®çº [2, 4, 6, 8, 10]
縮æ¸é£å
以ä¸ç¯ä¾ä¸, é£å numbers çé·åº¦è¥å¤§æ¼ 3ï¼åå°å
¶é·åº¦ç¸®æ¸è³ 3ã
var numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
è¦ç¯
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-properties-of-array-instances-length> |