首页 >web前端 >H5教程 >JS之原生数组splice方法实例

JS之原生数组splice方法实例

PHP中文网
PHP中文网原创
2018-05-30 09:54:232361浏览

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<script>
/*
* splice(start, deleteCount, data1, data2, data3...)
* */
var arr = [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;];
//1, 3
//    [8,6,4]
//[&#39;a&#39;,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方法实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn