您好,登錄后才能下訂單哦!
JS如何使用原生數組splice?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> /* * splice(start, deleteCount, data1, data2, data3...) * */ var arr = ['a', 'b', 'c', 'd', 'e']; //1, 3 // [8,6,4] //['a',8,6,4] //arr.splice(-5); //console.log(arr); function arrSplice(data, start, deleteCount) { // 如果start不是數字,或不能轉成數字,start默認就為0 if (isNaN(start)) { start = 0; } start = Number(start); // 如果start是負數 if (start < 0) { start = data.length + start; } if (start < 0) { start = 0; } // 如果deleteCount沒傳 if (deleteCount == undefined) { deleteCount = data.length - start; } /* * 1. 準備一個空的數組,用于存放最后的結果 * 2. 循環源數組 * 1. 得到當前循環過程中的下標 * 2. 把這個下標和start做比較 * 1. 如果當前下標小于start,則把當前數組添加到新數組中 * 2. 否則 * 1. 是否有新增數據 * 1. 如果有新在數據,則把新增數據添加到新數組中 * 2. 否則,如果deleteCount大于0,忽略這個數據,并對deleteCount-- * 否則,把當前數據添加到新數組中 * */ var newArr = []; //新增數據 var newData = []; if (arguments.length > 3) { for (var i=3; i<arguments.length; i++) { // newData.push(arguments[i]); newData[newData.length] = arguments[i]; } } for (var i=0; i<data.length; i++) { if (i < start) { // newArr.push(data[i]); newArr[newArr.length] = data[i]; } else { if (newData.length) { //有新增數據的 // newArr = newArr.concat(newData); for (var j=0; j<newData.length; j++) { newArr[newArr.length] = newData[j]; } newData.length = 0; } if (deleteCount > 0) { deleteCount--; } else { // newArr.push(data[i]); newArr[newArr.length] = data[i]; } } } data = newArr; console.log(data); } </script> </body> </html>
關于JS如何使用原生數組splice問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。