DAY_4作业——判断数组内是否有某一个数据————实现数组映射(放大 10 倍)—— 实现按序插入数组(修改bug)——实现数组去重

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY_4作业——判断数组内是否有某一个数据————实现数组映射(放大 10 倍)—— 实现按序插入数组(修改bug)——实现数组去重相关的知识,希望对你有一定的参考价值。

封装函数, 判断数组内是否有某一个数据

var arr  = [7,3,24,5,20,1,0,12,10,0,5]
function hasData(arr, data) 
    var res = arr.indexOf(data);
    return res !=-1 ? true : false;    

封装函数, 实现数组映射(放大 10 倍)

function mapArr(arr) 
    for(var i=0;i<arr.length;i++)
        arr[i] = arr[i]*10;
        console.log(arr[i]);
    

算法实现:

封装函数, 实现按序插入数组

//判断升序还是降序
function fun(arr)
    var i =0
    while(true)       
        if(arr[i] != arr[i+1])
            return arr[i]<arr[i+1] ? true:false
        
        i++;
           



function insert(arr, data) 
    if(fun(arr))
        if(data>=arr[arr.length-1])
            arr.push(data)
            return 0
        
        if(data<=arr[0])
            arr.unshift(data)
            return 0
        
        for(var i=0; i< arr.length; i++)
            if(data >= arr[i] && data <= arr[i+1])
                console.log(arr[i],arr[i+1]);
                arr.splice(i+1,0,data)
                break;
            
        
    else
        if(data<=arr[arr.length-1])
            arr.push(data)
            return 0
        
        if(data>=arr[0])
            arr.unshift(data)
            return 0
        
        for(var i=0; i< arr.length; i++)
            if(data <= arr[i] && data >= arr[i+1])
                // console.log(arr[i],arr[i+1]);
                arr.splice(i+1,0,data)
                break;
            
        
    

//var arr = [1,4,8,9,12,12]
var arr = [12,12,8,6,2,1]
insert(arr,5)
console.log(arr);
console.log(fun(arr));

=> 提示:
-> 插入的数据可能和数组内部数据一样
-> 保持原有排序方式

实现数组去重

=> 说明: 只考虑纯数字的数组
=> 提示: 当你删除数组某一项的时候, 后面索引会塌陷
这块果然有大坑,谨慎兄妹们!!!!!!(我晚饭时间都耽搁了)

算法实现:

var arr = [3,2,10,3,1,2,10,8,9,1,10,6,10];
console.log(arr);
//var arr = [8,1,8,8,90,90,8];
// var arr = [3,1,10,10,3,1,2];
var arr = [3,1,3,3,1,4]
console.log(arr);
var size = arr.length;
var count = 0;
for(var i=0; i<arr.length;i++)
    for(var j=i+1;j<arr.length;j++)
        if(arr[i] == arr[j])
            console.log(`对比的当前下标是:$i`);
            console.log(`重复项:$arr[j],索引下标为$j`);
            arr.splice(j,1)
            console.log("=>当前去重后:",arr);
            j--;
        
        console.log(`<=======j是:$j=========>`);
    

console.log(arr);

以上是关于DAY_4作业——判断数组内是否有某一个数据————实现数组映射(放大 10 倍)—— 实现按序插入数组(修改bug)——实现数组去重的主要内容,如果未能解决你的问题,请参考以下文章

js 判断数组中是否有某值

jquery怎么判断是不是有某个子元素

判断数组是不是有重复,数组去重的简单方法

DAY_4-回顾,对象,数组基本概念——1

JS判断一个数组中是不是有重复值的三种方法

C#判断是否有某文件夹存在