Baseline Widely available
copyWithin()
æ¹æ³æµ
å¤å¶æ°ç»çä¸é¨åå°å䏿°ç»ä¸çå¦ä¸ä¸ªä½ç½®ï¼å¹¶è¿åå®ï¼ä¸ä¼æ¹ååæ°ç»çé¿åº¦ã
const array1 = ["a", "b", "c", "d", "e"];
// Copy to index 0 the element at index 3
console.log(array1.copyWithin(0, 3, 4));
// Expected output: Array ["d", "b", "c", "d", "e"]
// Copy to index 1 all elements from index 3 to the end
console.log(array1.copyWithin(1, 3));
// Expected output: Array ["d", "d", "e", "d", "e"]
è¯æ³
copyWithin(target)
copyWithin(target, start)
copyWithin(target, start, end)
åæ°
target
åºåå¼å§æ¿æ¢çç®æ ä½ç½®ï¼ä»¥ 0 为起å§ç䏿 表示ï¼ä¸å°è¢«è½¬æ¢ä¸ºæ´æ°
target < 0
ï¼åå®é
æ¯ target + array.length
ãtarget < -array.length
ï¼åä½¿ç¨ 0
ãtarget >= array.length
ï¼åä¸ä¼æ·è´ä»»ä½å
容ãtarget
ä½äº start
ä¹åï¼åå¤å¶åªä¼æç»å° array.length
ç»æï¼æ¢å¥è¯è¯´ï¼copyWithin()
æ°¸è¿ä¸ä¼æ©å±æ°ç»ï¼ãstart
å¯é
è¦å¤å¶çå ç´ åºåçèµ·å§ä½ç½®ï¼ä»¥ 0 为起å§ç䏿 表示ï¼ä¸å°è¢«è½¬æ¢ä¸ºæ´æ°
start < 0
ï¼åå®é
æ¯ start + array.length
ãstart
æ start < -array.length
ï¼åé»è®¤ä¸º 0
ãstart >= array.length
ï¼åä¸ä¼æ·è´ä»»ä½å
容ãend
å¯é
è¦å¤å¶çå
ç´ åºåçç»æä½ç½®ï¼ä»¥ 0 为起å§ç䏿 表示ï¼ä¸å°è¢«è½¬æ¢ä¸ºæ´æ°ãcopyWithin
å°ä¼æ·è´å°è¯¥ä½ç½®ï¼ä½ä¸å
æ¬ end
è¿ä¸ªä½ç½®çå
ç´ ã
end < 0
ï¼åå®é
æ¯ end + array.length
ãend < -array.length
ï¼å使ç¨0
ãend
æ end >= array.length
ï¼åé»è®¤ä¸º array.length
ï¼è¿å°å¯¼è´ç´å°æ°ç»æ«å°¾çææå
ç´ é½è¢«å¤å¶ãend
ä½äº start
ä¹åï¼åä¸ä¼æ·è´ä»»ä½å
å®¹ãæ¹ååçæ°ç»ã
æè¿°copyWithin()
æ¹æ³çå·¥ä½åçç±»ä¼¼äº C å C++ ç memmove
ï¼æ¯ä¸ç§ç§»å¨æ°ç»æ°æ®ç髿§è½æ¹æ³ï¼ä¸ TypedArray
çååæ¹æ³ç±»ä¼¼ãåºåå¨ä¸æ¬¡ä¸æä½è¢«å¤å¶åç²è´´ï¼å³ä½¿å¤å¶åç²è´´åºåéå ï¼ç²è´´çåºåä¹å°å
·æå¤å¶å¼ã
copyWithin()
æ¯ä¿®æ¹æ¹æ³ãå®ä¸ä¼æ¹å this
æåçå¯¹è±¡ï¼æ°ç»æç±»æ°ç»ï¼çé¿åº¦ï¼ä½ä¼æ´æ¹å
¶çå
容ï¼å¹¶å¨å¿
è¦æ¶å建æ°å±æ§æå é¤ç°æå±æ§ã
copyWithin()
æ¹æ³ä¿ç空槽ã妿è¦å¤å¶çåºåæ¯ç¨ççï¼å忥ç空槽ä¼è¢«å é¤å¹¶è¢«æ¿æ¢ä¸ºæ·è´ç空槽ã
copyWithin()
æ¹æ³æ¯éç¨çãå®åªææ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ãè½ç¶åç¬¦ä¸²ä¹æ¯ç±»ä¼¼æ°ç»çï¼ä½è¿ç§æ¹æ³ä¸éç¨äºå®ä»¬ï¼å 为å符串æ¯ä¸å¯åçã
console.log([1, 2, 3, 4, 5].copyWithin(-2));
// [1, 2, 3, 1, 2]
console.log([1, 2, 3, 4, 5].copyWithin(0, 3));
// [4, 5, 3, 4, 5]
console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4));
// [4, 2, 3, 4, 5]
console.log([1, 2, 3, 4, 5].copyWithin(-2, -3, -1));
// [1, 2, 3, 3, 4]
å¨ç¨çæ°ç»ä¸ä½¿ç¨ copyWithin()
copyWithin()
å°ä¿çç©ºææ§½ã
console.log([1, , 3].copyWithin(2, 1, 2)); // [1, empty, empty]
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ copyWithin()
copyWithin()
æ¹æ³è¯»å this
ç length
屿§ï¼ç¶åæä½ææ¶åçæ´æ°ç´¢å¼ã
const arrayLike = {
length: 5,
3: 1,
};
console.log(Array.prototype.copyWithin.call(arrayLike, 0, 3));
// { '0': 1, '3': 1, length: 5 }
console.log(Array.prototype.copyWithin.call(arrayLike, 3, 1));
// { '0': 1, length: 5 }
// '3' 屿§è¢«å é¤ï¼å 为å¨å¤å¶çæºä¸æ¯ä¸ä¸ªç©ºæ§½
è§è æµè§å¨å
¼å®¹æ§ åè§
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