• 17-数组中去除基本数据类型和NaN的重复项(并保证原有数组顺序)


    思想:

    1.只有NaN不等于自身,通过这个特性去区分处理

    2.通过一个变量开关,去控制添加次数(在循环中通过if条件)

    3.找到第一次第一次就命中条件的,通过开关的作用把第一次的命中的元素push到数组中,后面的NaN重复的自然也就添加不进去

    3.其他元素添加与否的条件通过判断数组中是否已经存在,通过indexOf,如果为-1就是不存在则添加。

    var arr = [false,true,undefined,null,null,NaN,0,1,{},{},'a','a',NaN];
    // 期望输出结果:
    // [false,true,undefined,null,NaN,0,1,{},{},'a'];
    
    function fn(arr){
      let flag = true;  //控制相同元素添加次数的开关
      let newArr = [];
      arr.forEach((item,index)=>{
        // item != item 是为了筛出来NaN,因为不等于自身的只有NaN
        // NaN === NaN 是false,其他的都为true
        if(item!=item){
          if(flag){
            newArr.push(item)   //通过开关,把最先出现的那个NaN添加进了数组中,保证了新数组的顺序
            flag=false;  //添加一次成功后,开关关闭
          }
        }else{
          // 新数组中不存在的才会push到新数组中
          if(newArr.indexOf(item)===-1){
            newArr.push(item)
          }
        }
      })
      return newArr;
    
    }
    var res = fn(arr);
    console.log(res);
  • 相关阅读:
    nrf51822蓝牙芯片ble_app_proximity程序总结
    创新学分材料
    毕业论文 一定要自己写 切记不可抄袭​
    Shell awk 求标准差
    Java程序执行Linux命令(JSP运行其他程序)
    SFTP无法连接 Connection closed by server with exitcode 127
    IE开发人员工具手册
    jQuery plugins
    Google maps api demo 2
    Google maps api demo
  • 原文地址:https://www.cnblogs.com/haoqiyouyu/p/14922924.html
Copyright © 2020-2023  润新知