递减函数的应用

作者: 世外大帝 | 来源:发表于2018-11-02 11:58 被阅读4次

在正常遍历数组的情况下,删减自身元素导致的长度不足,影响循环次数不足

解决方案:
使用自身长度递减至0,不会影响循环次数

注意点:i<-1,因为需要递减至0号位置

例子:


// 遍历原数组,不包含新数组的元素将被删除

var arr = [1, 2, 3, 4, 5];//原数组
var newArr = [3];// 新元素数组
for (var j = 0; j < newArr.length; j++) {
    for (var i = 0; i < arr.length; i++) {
        if (newArr[j] != arr[i]) {
            arr.splice(i, 1);
            console.log("删除过程:",arr)
        }
    }
}

// 应该删除[1,2,4,5],保留元素应为[3]
console.log("final:",arr);
/*
result:

删除过程: [ 2, 3, 4, 5 ]
删除过程: [ 2, 3, 5 ]
final: [ 2, 3, 5 ]

*/

原因分析:

  1. 数组的长度是5,毫无疑问,应该循环5次,
  2. 因为第一次删除了自身元素1, 所以倒是长度-1,跳过2的删除,
  3. 不需要删除,执行删除4后,遇到之前的问题,5不会被删除。

解决方案:

  1. 总长度不可变化
var arr = [1, 2, 3, 4, 5];//原数组
var newArr = [3];// 新元素数组
for (var j = 0; j < newArr.length; j++) {
    for (var i = arr.length; i >-1; i--) {
        if (newArr[j] != arr[i]) {
            arr.splice(i, 1);
            console.log("删除过程:",arr)
        }
    }
}

// 应该删除【1,2,4,5],保留元素应为[3]
console.log("final:",arr);

/*
result:

删除过程: [ 1, 2, 3, 4, 5 ]
删除过程: [ 1, 2, 3, 4 ]
删除过程: [ 1, 2, 3 ]
删除过程: [ 1, 3 ]
删除过程: [ 3 ]
final: [ 3 ]

*/

相关文章

  • 递减函数的应用

    在正常遍历数组的情况下,删减自身元素导致的长度不足,影响循环次数不足 解决方案:使用自身长度递减至0,不会影响循环...

  • 2017-06-24

    在时间给出验证之前,不知道关于喜欢和思念的函数,究竟是幅度恒定地震荡,还是幅度递减地震荡。抑或,幅度递减,但穷尽一...

  • UCOSIII_定时器

    定时器实际就是一个递减的计数器,递减到0会触发一个动作,这个动作就是回调函数。 使用OSTmrCreate()来创...

  • php的运算符/函数/数组/字符串

    1 算术运算符 2 赋值运算符 3递增(++)/递减(--) 4 函数 php的函数不支持重载,所以自定义的函数不...

  • Python中range和xrange的区别

    range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列。xrange也有相同的功能...

  • 函数的应用

    创建示例:13、数据库 函数 函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。 1.创建...

  • 函数的应用

    """ 1.函数的声明 def 函数名(参数1:类型1, 参数2:类型2...) ->返回值类型:函数说明文档函数...

  • 函数的应用

    函数的重载 函数名相同,参数列表不同(包括参数类型不同,参数个数不同,参数顺序不同) 函数的一些注意地方 1.在创...

  • 大连滕泰科技学习笔记2020-09-01

    1,项目组8 1,1 函数应用-- 函数套用函数的应用-- 函数中参数的默认数据 1,2 事件-- onload静...

  • 以无线方式安装企业内部iOS应用(启动下载更新发布)总结

    1.启动应用程序: 应用程序入口是main函数: main函数中有代用的UIApplicationMain函数,然...

网友评论

    本文标题:递减函数的应用

    本文链接:https://www.haomeiwen.com/subject/ftgqxqtx.html