JS之原生数组splice方法实例


本文摘自PHP中文网,作者PHP中文网,侵删。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

<!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方法实例的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript怎么修改浏览器title

javascript失去焦点如何设置

linux服务器搭建node.js环境的步骤介绍

javascript中日期如何转为时间戳

javascript中什么是私有成员

javascript中进程和线程的区别是什么

javascript与html的结合方法详解

vue.js方法与事件的介绍

javascript对象封装的方法有哪些

javascript字符串转换成utf-8编码方式有哪些

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...