数组中插入数字排序,随机数,数组去重等案例

在全局环境中,每次执行累加1(不允许出现全局变量)
function fn(){
var a = 10;
return function(){
a++;
console.log(a);
}
}
var f = fn();
f();
f();
f();
f();

//定义一个30项的数组,数组的每一项要求是1-10的随机数,每间隔5个数字,求出前五个数的平均值
//定义一个30项的数组
var arr = new Array(30);
var arr = [];
for(var i=0;i<30;i++){
//组的每一项要求是1-10的随机数
var n =Math.round(Math.random()*9)+1;
arr.push(n);
}
console.log(arr);
//每间隔5个数字
for(var i=0;i<arr.length;i+=5){
// console.log(arr.slice(i,i+5));
console.log(ave(arr.slice(i,i+5)));
}
//前五个数的平均值
function ave(myarr){
var sum = 0;
for(var i=0;i<myarr.length;i++){
sum +=myarr[i];
}
return sum/myarr.length;
}

例:编写函数map(arr)把数组中的每一位数字都增加30%
function map(myarr){
for(var i=0;i<myarr.length;i++){
myarr[i]=myarr[i]*1.3;
}
}
var arr =[10,20,30,40,50];
console.log(arr);
map(arr);
console.log(arr);

编写函数has(arr,60)判断数组中是否存在60这个元素,返回布尔类型
function has(myarr,value){
for(var i=0;i<myarr.length;i++){
if(myarr[i]===value){
return true;
}
}
return false;
}
var arr =[10,4,5,60,90];
var arr1 =[1,3,4,5,6,7];
var a =has(arr,60);
var b =has(arr1,60);
console.log(a);
console.log(b);

编写函数 norepeat(arr)将数组的重复元素去掉,并返回新的数组
function has(myarr,value){
for(var i=0;i<myarr.length;i++){
if(myarr[i]===value){
return true;
}
}
return false;
}
function norepeat(myarr){
var smallArr =[];
for(var i=0;i<myarr.length;i++){
if(has(smallArr,myarr[i])==false){
smallArr.push(myarr[i]);
}
}
return smallArr;
}
var arr =[1,2,3,3,4,4,5,5,6,1];
var a = norepeat(arr);
console.log(a);

有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
方法1
function insert(myarr,n){
myarr.push(n);
myarr.sort(function(a,b){
return a-b;
})
return myarr;
}
方法2 先找到要插入的位置,然后将此位置到最后一个数据,全部往后挪一位(从最后一位开始挪),最后,再插入到指定位置
function insert(myarr,n){
for(var i=0;i<myarr.length;i++){
if(myarr[i]>n){
break; //判断插入的数值是否大于myarr[i],如果大于就停止
}
}
for(var j=myarr.length-1;j>=i;j–){ //从最后一位依次往后移,直到myarr[i]=n为止
myarr[j+1]=myarr[j];
}
myarr[i] = n;
return myarr;
}

var arr =[2,4,6,8,10];
console.log(arr);
var a=insert(arr,5);
console.log(a);
console.log(arr);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值