Array.prototype.unshift()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
unshift() æ¹æ³å°æå®å
ç´ æ·»å å°æ°ç»çå¼å¤´ï¼å¹¶è¿åæ°ç»çæ°é¿åº¦ã
å°è¯ä¸ä¸
const array1 = [1, 2, 3];
console.log(array1.unshift(4, 5));
// Expected output: 5
console.log(array1);
// Expected output: Array [4, 5, 1, 2, 3]
è¯æ³
unshift()
unshift(element1)
unshift(element1, element2)
unshift(element1, element2, /* â¦, */ elementN)
åæ°
element1ãâ¦ãelementN-
æ·»å å°
arrå¼å¤´çå ç´ ã
è¿åå¼
è¿åè°ç¨æ¹æ³å¯¹è±¡çæ° length 屿§ã
æè¿°
unshift() æ¹æ³å°ç»å®ç弿å
¥å°ç±»æ°ç»å¯¹è±¡çå¼å¤´ã
Array.prototype.push() æçå unshift() ç¸ä¼¼çè¡ä¸ºï¼ä½æ¯å
¶å°å
ç´ æå
¥å°æ°ç»çæ«å°¾ã
请注æï¼å¦æå¤ä¸ªå
ç´ ä½ä¸ºåæ°ä¼ éï¼å®ä»¬å°è¢«æå
¥å°å¯¹è±¡å¼å¤´çåä¸ï¼ä¸å®ä»¬ä½ä¸ºåæ°ä¼ éç顺åºå®å
¨ç¸åãå æ¤ï¼è°ç¨ä¸æ¬¡ unshift() æ¹æ³å¹¶ä¼ é n ä¸ªåæ°ï¼ä¸è°ç¨ n æ¬¡å¹¶ä¼ é 1 ä¸ªåæ°ï¼ä¾å¦ä½¿ç¨å¾ªç¯ï¼ï¼ä¸ä¼äº§çç¸åçç»æã
请ç示ä¾ï¼
let arr = [4, 5, 6];
arr.unshift(1, 2, 3);
console.log(arr);
// [1, 2, 3, 4, 5, 6]
arr = [4, 5, 6]; // éç½®æ°ç»
arr.unshift(1);
arr.unshift(2);
arr.unshift(3);
console.log(arr);
// [3, 2, 1, 4, 5, 6]
unshift() æ¹æ³æ¯éç¨çãå®åªææ this å¼å
·æ length 屿§åæ´æ°é®å±æ§ãè½ç¶åç¬¦ä¸²ä¹æ¯ç±»ä¼¼äºæ°ç»çï¼ä½è¿ä¸ªæ¹æ³ä¸éç¨äºå®ä»¬ï¼å 为å符串æ¯ä¸å¯åçã
示ä¾
>ä½¿ç¨ unshift()
const arr = [1, 2];
arr.unshift(0); // è°ç¨çç»ææ¯ 3ï¼è¿æ¯æ°çæ°ç»é¿åº¦ã
// æ°ç»æ¯ [0, 1, 2]
arr.unshift(-2, -1); // æ°çæ°ç»é¿åº¦æ¯ 5
// æ°ç»æ¯ [-2, -1, 0, 1, 2]
arr.unshift([-4, -3]); // æ°çæ°ç»é¿åº¦æ¯ 6
// æ°ç»æ¯ [[-4, -3], -2, -1, 0, 1, 2]
arr.unshift([-7, -6], [-5]); // æ°çæ°ç»é¿åº¦æ¯ 8
// æ°ç»æ¯ [ [-7, -6], [-5], [-4, -3], -2, -1, 0, 1, 2 ]
å¨éæ°ç»å¯¹è±¡ä¸ä½¿ç¨ unshift()
unshift æ¹æ³ä¼è¯»å this ç length 屿§ãç¶åï¼å®å° 0 å° length - 1 èå´å
çææå±æ§æåæ°æ°éå³ç§»ï¼å¹¶å°æ¯ä¸ªç´¢å¼ä» 0 å¼å§ï¼å¹¶å°åæ°ä¼ éç» unshift()ãæåï¼å®å° length 设置为ä¹åçé¿åº¦å ä¸åç½®å
ç´ çæ°éã
const arrayLike = {
length: 3,
unrelated: "foo",
2: 4,
};
Array.prototype.unshift.call(arrayLike, 1, 2);
console.log(arrayLike);
// { '0': 1, '1': 2, '4': 4, length: 5, unrelated: 'foo' }
const plainObj = {};
// è¿é没æé¿åº¦å±æ§ï¼æä»¥è¿éçé¿ç为 0
Array.prototype.unshift.call(plainObj, 1, 2);
console.log(plainObj);
// { '0': 1, '1': 2, length: 2 }
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification > # sec-array.prototype.unshift > |