首页 > 编程语言 > 详细

数组去重等数组实例

时间:2019-11-30 22:56:11      阅读:94      评论:0      收藏:0      [点我收藏+]

一、删除指定的数组元素

要求:将数组 [2,0,45,3,9,0,47,0] 中的 0去掉,然后形成一个不包含 0的新数组;

实现思路:

1、需要一个新数组用于存放筛选之后的数据。

2、遍历原来的数组,把不是 0的数据添加到新数组里面(此时要注意采用 数组名+索引名 的格式接收数据)

3、新数组里面的个数,使用length 不断累加;

var arr= [2,0,45,3,9,0,47,0];
var newArr = [];
for(var i=0,j=0;i<arr.length;i++){
    if(arr[i]!=0){
    //新数组应该从 0开始,依次递增
    newArr[newArr.length] =arr[i];
    }
}
console.log(newArr);

技术分享图片

 

二、数组去重

要求:删除数组 [1,2,3,4,2,1,4,5,6] 中的重复的元素。

实现思路:

1、首先获取数组中的每一个元素

2、从当前元素的下一个元素进行比较

3、运用条件判断判断两个循环获取的元素是否相等;

4、如果相等则证明出现了重复的元素,就删除aa对应的元素。

5、当删除了aa所对应的元素,后面的元素会自动补上一位,此时就不会比较当前的元素,因此需要再比较一次aa所在位置的元素。

为了达到这个效果就需要对 aa自减(aa--),需要写在内部的for循环里面,删除了一个元素之后才aa--;

var arr=[1,2,3,4,2,1,4,5,6];
for(var i=0;i<arr.length;i++){
    for(var aa=i+1;aa<arr.length;aa++){
        if(arr[i] == arr[aa]){
            arr.splice(aa,1);
            aa--
        }
    }
}console.log(arr);

技术分享图片

 

 三、数组中新增元素

要求:新建一个数组,里面存放10个整数(1—10);

实现思路:

1、使用循环来追加数组;

2、声明一个空数组 arr;

3、循环中的计数器 i 可以作为数组元素存入。

4、由于数组的索引号是从 0开始的,因此计数器从 0开始更加合适,存入的数组元素要 +1;

注意:

可以通过修改数组索引的方式追加数组

不能直接给数组名进行赋值,否则会覆盖掉以前的数据;

新增数组元素,可以通过修改索引号,追加数组元素;

var arr=[];
for(var i = 0;i<10;i++){
    arr[i] = i+1;
}
console.log(arr);

技术分享图片

 

四、筛选数组

要求:将数组 [2,0,6,1,56,0,94,2]中大于 10的元素筛选出来,放到新的数组中。

实现思路:

1、声明一个新的数组用于存放新的数组 newArr。

2、遍历原来的旧数组,找出大于等于 10的元素;

3、依次追加给数组 newArr;

讨论多种方法实现效果,核心思路就是(新数组应该从0开始,依次递增)

方法一:

var arr= [2,0,6,12,1,56,0,94,2];
var newArr = [];
for(var i=0,j=0;i<arr.length;i++){
    if(arr[i]>10){
    //新数组应该从 0开始,依次递增
    newArr[j] =arr[i];
    j++;
    }
}

技术分享图片

 方法二:

也可以将 j++ 直接写在索引 ( [ ] )里面。

var arr= [2,0,6,12,1,56,0,94,2];
var newArr = [];
for(var i=0,j=0;i<arr.length;i++){
    if(arr[i]>10){
    //新数组应该从 0开始,依次递增
    newArr[j++] =arr[i];
    }
}
console.log(newArr);

方法三:

使用 length属性获得 newArr 数组的长度;

刚开始的时候 newArr数组是空的,所以newArr.length刚开始的结果就是 0;

length自动检测数组的实现。

var arr= [2,0,6,12,1,56,0,94,2];
var newArr = [];
for(var i=0;i<arr.length;i++){
    if(arr[i]>10){
    //新数组应该从 0开始,依次递增
    newArr[newArr.length] =arr[i];
    }
}
console.log(newArr);

技术分享图片

 

五、翻转数组

要求:将数组 [‘一‘,‘二‘,‘三‘,‘四‘,‘五‘] 的内容反过来存放,输出: [‘五‘,‘四‘,‘三‘,‘二‘,‘一‘]

实现思路:

1、声明一个新数组 newArr;

2、将旧的数组索引号第 4个取过来(arr.length - 1),给新数组索引号第 0个元素(new.length)

3、采取递减的方式 i--;

把 arr 原数组的最后一个元素取出来给 新数组作为第一个

  • 将第 4 个给新数组第 0 个;
  • 将第 3 个给新数组第 1 个;
  • 将第 2 个给新数组第 2 个;
  • 将第 1 个给新数组第 3 个;
  • 将第 0 个给新数组第 4 个;

旧的数组是一个递减的过程 43210(5-1);新的数组 是一个递增的过程

var arr =[‘一‘,‘二‘,‘三‘,‘四‘,‘五‘];
var newArr=[];
for(var i=arr.length-1;i>=0;i--){
    newArr[newArr.length]=arr[i]
}
console.log(newArr);

技术分享图片

 

数组去重等数组实例

原文:https://www.cnblogs.com/nyw1983/p/11956228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!