js动态生成的顺序数字删除中间数字后面的数字如何全部自减一呢?

JavaScript014

js动态生成的顺序数字删除中间数字后面的数字如何全部自减一呢?,第1张

js删除数组中间数字后续数字自减一实现代码如下:

/**

* @param {number[]} arr  - 原数组

* @param {number} deleteIndex  - 要删除的位置

* @param {number} howMany - 删除多少个,注意,如果删除多个,后面就算自减一,整个数组也不会是连续的

* @return {number[]} 结果返回删除后自减一的数组

*/

function deleteAndReset(arr,deleteIndex,howMany=1){

  if(!arr || arr.length==0){

      return []

  }

  let temp = arr.slice()  // 浅拷贝数组

  temp.splice(deleteIndex,howMany) // 删除指定位置指定个数

let front = temp.slice(0,deleteIndex) // 索引的前段

let end = temp.slice(deleteIndex) // 索引的后段

  if(end.length>0){ // 如果后半部分有值,则所有元素自减1

      return front.concat(end.map(v=>v-1)) // @下文标记处

  }

  return front  // 如果后半部分为空,说明删的是末尾,直接返回前段即可

}

演示结果如下:

输入:deleteAndReset([1,2,3,4,5,6],1,1)

返回:[1, 2, 3, 4, 5]

输入:deleteAndReset([1,2,3,4,5,6],1,2)

返回:[1, 3, 4, 5]

因为后者删的是2个,索引自减一,也不会使数组连续,根据题目要求,如果只是自减一可以不用管。

如果要删除多个数组仍然要连续,只需要修改代码注释@标记处,起始值改为删除的第一个数字即可,后续仍然是自减一。

如有疑问,欢迎追问!

_time.getHours() + 100

这里得到的数字

+ ""

是把这个数字转换成字符

才能执行

substr

否则会出错

jquery实现立体式数字滚动条增加效果,代码分为两部分,一部分位html结构另一部分属于js代码段,需要的朋友参考下吧!

1、html结构

<div class="numberRun1"></div>

2、js

<script type="text/javascript" src="js/digital_over.js" ></script>//引用 //这是自定义函数(需要在页面中进行调用) <script> //数字滚动function digitalScroll(obj,n){ var numRun = $(obj).numberAnimate({num:n, speed:2000, symbol:","}) var nums = n setInterval(function(){numRun.resetData(nums) },3000) var numWidth= $(obj).width() $(obj).find('.mt-number-animate').css('width',numWidth) $(obj).css('width','100%') $(obj).find('.mt-number-animate').css('margin','0 auto') }window.indexdigitalScroll=function(){ digitalScroll($('.numberRun1'),1160518) } </script> <!--这是在页面中调用的方法--> <script> $(function(){ indexdigitalScroll() }) </script>

3、图片案例