Baseline Widely available
splice()
æ¹æ³å°±å°ç§»é¤æè
æ¿æ¢å·²åå¨çå
ç´ å/ææ·»å æ°çå
ç´ ã
è¦å建ä¸ä¸ªå é¤å/ææ¿æ¢é¨åå
容è䏿¹ååæ°ç»çæ°æ°ç»ï¼è¯·ä½¿ç¨ toSpliced()
ãè¦è®¿é®æ°ç»çä¸é¨åèä¸ä¿®æ¹å®ï¼åè§ slice()
ã
const months = ["Jan", "March", "April", "June"];
months.splice(1, 0, "Feb");
// Inserts at index 1
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, "May");
// Replaces 1 element at index 4
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "May"]
è¯æ³
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* â¦, */ itemN)
åæ°
start
ä» 0 å¼å§è®¡ç®çç´¢å¼ï¼è¡¨ç¤ºè¦å¼å§æ¹åæ°ç»çä½ç½®ï¼å®ä¼è¢«è½¬æ¢ææ´æ°ã
-buffer.length <= start < 0
ï¼ä½¿ç¨ start + array.length
ãstart < -array.length
ï¼ä½¿ç¨ 0
ãstart >= array.length
ï¼åä¸ä¼å é¤ä»»ä½å
ç´ ï¼ä½æ¯è¯¥æ¹æ³ä¼è¡¨ç°ä¸ºæ·»å å
ç´ ç彿°ï¼æ·»å ææä¾çé£äºå
ç´ ãstart
被çç¥äºï¼å³è°ç¨ splice()
æ¶ä¸ä¼ éåæ°ï¼ï¼åä¸ä¼å é¤ä»»ä½å
ç´ ãè¿ä¸ä¼ é undefined
ä¸åï¼åè
ä¼è¢«è½¬æ¢ä¸º 0
ãdeleteCount
å¯é
ä¸ä¸ªæ´æ°ï¼è¡¨ç¤ºæ°ç»ä¸è¦ä» start
å¼å§å é¤çå
ç´ æ°éã
妿çç¥äº deleteCount
ï¼æè
å
¶å¼å¤§äºæçäºç± start
æå®çä½ç½®å°æ°ç»æ«å°¾çå
ç´ æ°éï¼é£ä¹ä» start
å°æ°ç»æ«å°¾çææå
ç´ å°è¢«å é¤ã使¯ï¼å¦æä½ æ³è¦ä¼ éä»»ä½ itemN
åæ°ï¼ååºå deleteCount
ä¼ é Infinity
å¼ï¼ä»¥å é¤ start
ä¹åçææå
ç´ ï¼å 为æ¾å¼ç undefined
ä¼è½¬æ¢ä¸º 0
ã
妿 deleteCount
æ¯ 0
æè
è´æ°ï¼åä¸ä¼ç§»é¤ä»»ä½å
ç´ ãå¨è¿ç§æ
åµä¸ï¼ä½ åºè¯¥è³å°æå®ä¸ä¸ªæ°å
ç´ ï¼è¯·åè§ä¸æï¼ã
item1
ãâ¦ãitemN
å¯é
ä» start
å¼å§è¦å å
¥å°æ°ç»ä¸çå
ç´ ã
妿䏿å®ä»»ä½å
ç´ ï¼splice()
å°åªä»æ°ç»ä¸å é¤å
ç´ ã
ä¸ä¸ªå å«äºå é¤çå ç´ çæ°ç»ã
妿åªç§»é¤ä¸ä¸ªå ç´ ï¼åè¿åä¸ä¸ªå ç´ çæ°ç»ã
å¦ææ²¡æå é¤ä»»ä½å ç´ ï¼åè¿åä¸ä¸ªç©ºæ°ç»ã
æè¿°splice()
æ¹æ³æ¯ä¸ä¸ªä¿®æ¹æ¹æ³ãå®å¯è½ä¼æ´æ¹ this
çå
容ã妿æå®çè¦æå
¥çå
ç´ æ°éä¸è¦å é¤çå
ç´ æ°éä¸åï¼æ°ç»ç length
ä¹å°ä¼æ´æ¹ãåæ¶ï¼å®ä¼ä½¿ç¨ [Symbol.species]
æ¥å建ä¸ä¸ªæ°æ°ç»å®ä¾å¹¶è¿åã
妿å é¤çé¨åæ¯ç¨ççï¼å splice()
è¿åçæ°ç»ä¹æ¯ç¨ççï¼å¯¹åºçç´¢å¼ä¸ºç©ºæ§½ã
splice()
æ¹æ³æ¯éç¨çãå®åªææ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ã尽管å符串ä¹ç±»ä¼¼äºæ°ç»ï¼ä½è¿ç§æ¹æ³ä¸éç¨äºå®ï¼å 为å符串æ¯ä¸å¯åçã
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");
// myFish æ¯ ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed æ¯ []ï¼æ²¡æç§»é¤çå
ç´
å¨ç´¢å¼ 2 å¤ç§»é¤ 0 个å
ç´ ï¼å¹¶æå
¥âdrumâåâguitarâ
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum", "guitar");
// myFish æ¯ ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed æ¯ []ï¼æ²¡æç§»é¤çå
ç´
å¨ç´¢å¼ 0 å¤ç§»é¤ 0 个å
ç´ ï¼å¹¶æå
¥âangelâ
splice(0, 0, ...elements)
å unshift()
䏿 ·å¨æ°ç»çå¼å¤´æå
¥å
ç´ ã
const myFish = ["clown", "mandarin", "sturgeon"];
const removed = myFish.splice(0, 0, "angel");
// myFish æ¯ ["angel", "clown", "mandarin", "sturgeon"]
// 没æç§»é¤çå
ç´
卿åä¸ä¸ªç´¢å¼å¤ç§»é¤ 0 个å
ç´ ï¼å¹¶æå
¥âsturgeonâ
splice(array.length, 0, ...elements)
å push()
䏿 ·å¨æ°ç»çæ«å°¾æå
¥å
ç´ ã
const myFish = ["angel", "clown", "mandarin"];
const removed = myFish.splice(myFish.length, 0, "sturgeon");
// myFish æ¯ ["angel", "clown", "mandarin", "sturgeon"]
// 没æç§»é¤çå
ç´
å¨ç´¢å¼ 3 å¤ç§»é¤ 1 个å
ç´
const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);
// myFish æ¯ ["angel", "clown", "drum", "sturgeon"]
// removed æ¯ ["mandarin"]
å¨ç´¢å¼ 2 å¤ç§»é¤ 1 个å
ç´ ï¼å¹¶æå
¥âtrumpetâ
const myFish = ["angel", "clown", "drum", "sturgeon"];
const removed = myFish.splice(2, 1, "trumpet");
// myFish æ¯ ["angel", "clown", "trumpet", "sturgeon"]
// removed æ¯ ["drum"]
ä»ç´¢å¼ 0 å¤ç§»é¤ 2 个å
ç´ ï¼å¹¶æå
¥âparrotâãâanemoneâåâblueâ
const myFish = ["angel", "clown", "trumpet", "sturgeon"];
const removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
// myFish æ¯ ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed æ¯ ["angel", "clown"]
ä»ç´¢å¼ 2 å¤å¼å§ç§»é¤ 2 个å
ç´
const myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"];
const removed = myFish.splice(2, 2);
// myFish æ¯ ["parrot", "anemone", "sturgeon"]
// removed æ¯ ["blue", "trumpet"]
å¨ç´¢å¼ -2 å¤ç§»é¤ 1 个å
ç´
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(-2, 1);
// myFish æ¯ ["angel", "clown", "sturgeon"]
// removed æ¯ ["mandarin"]
å é¤ä»ç´¢å¼ 2 å¼å§çææå
ç´
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2);
// myFish æ¯ ["angel", "clown"]
// removed æ¯ ["mandarin", "sturgeon"]
å¨ç¨çæ°ç»ä¸ä½¿ç¨ splice()
splice()
æ¹æ³ä¿çäºæ°ç»çç¨çæ§ã
const arr = [1, , 3, 4, , 6];
console.log(arr.splice(1, 2)); // [empty, 3]
console.log(arr); // [1, 4, empty, 6]
å¨éæ°ç»å¯¹è±¡ä¸ä½¿ç¨ splice()
splice()
æ¹æ³è¯»å this
ç length
屿§ãç¶åï¼å®æ ¹æ®éè¦æ´æ°æ´æ°é®å±æ§å length
屿§ã
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.splice.call(arrayLike, 0, 1, 2, 3));
// [ 5 ]
console.log(arrayLike);
// { '0': 2, '1': 3, '3': 4, length: 4, unrelated: 'foo' }
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4