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)——实现数组去重的主要内容,如果未能解决你的问题,请参考以下文章