数组的小典例

1、编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组

思路:首先定义一个空的数组用来接收计算后的结果,使用for...of来遍历的到原数组中的值,然后用数组的push方法将计算后的结果追加到新的数组里面。最后将新数组返回即可。

var newArr = [];
        function map(arr) {
            for (var v of arr) {
                newArr.push(v * 1.3);
            }
            return newArr;
        }
        var result = map([10, 100, 1000]);
        console.log(result);

2、编写函数 判断数组中是否存在60这个元素,返回布尔类型

方法1:在函数中使用for of 来循环遍历到所有的值,如果遍历数组的值中有和要比较的值相等时,就return true。否则在循环结束的时候return false。

   function has(arr, num) {
            for (var v of arr) {
                if (v == num) {
                    return true;
                }
            }
            // 函数的代码能执行到这里,说明循环中 return true 没有执行,没有元素跟num相等
            return false;
        }
        var result = has([2, 4, 5, 6, 2, 1], 60);
        console.log(result);

 方法2:使用了数组中的indexOf方法,如果要检索的字符串值没有出现,则该方法返回 -1

     function has2(arr, num) {
            if (arr.indexOf(num) == -1) {
                return false;
            } else {
                return true;
            }
        }
        var result = has2([2, 4, 5, 60, 2, 1], 60);
        console.log(result);

 方法3:Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值

var arr = [2, 4, 5, 60, 2, 1];
console.log(arr.includes(60));

3、 编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组

 思路:首先定义一个数组接收返回元素,在函数中使用for of 循环来遍历数组中的每一个元素。接着对新数组中的元素使用indexOf进行判断,若不存在恒等于-1,则使用数组的push方法进行添加,最后将新数组进行return即可。不要忘记调用函数哦

var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5];
     var newArr = [];
        function norepeat(arr) {
            for (var v of arr) {
                //v 是否在 newArr  中
                if (newArr.indexOf(v) == -1) {
                    newArr.push(v);
                }
            }
            return newArr;
        }
        console.log(norepeat(arr));

 补:

splice() 方法向/从数组添加/删除项目,并返回删除的项目。

注释:splice() 方法会改变原始数组。

index必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。
howmany可选。要删除的项目数。如果设置为 0,则不会删除任何项目。
item1, ..., itemX可选。要添加到数组中的新项目。

4、 有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

方法1:使用数组的两函数,利用push函数可以将要输入的数字添加到尾部,然后在使用数组的sort比较函数方法进行降序或升序排序即可。

var arr = [1, 2, 4, 5, 6];
           arr.push(3);
           arr.sort(function (a, b) {
             return a - b;
         });
           console.log(arr);

 方法2:在函数中使用for in 遍历数组,将遍历到的元素赋值给一个变量,然后比较该元素与要插入元素的大小。若此元素大于等于要插入的元素,则将该元素的下标赋值给一个变量,结束循环。最后在使用数组的splice方法,在指定位置添加元素即可。

   var num = 3;
        for (var i in arr) {
            var v = arr[i];
            if (num <= v) {//比较数组元素和要插入元素的大小
                var index = i;//记录该元素的索引
                break;
            }
        }
        arr.splice(index, 0, num);
        console.log(arr);

 方法3:在函数内部首先从数组的最后一个元素开始进行判断,若要插入元素大于最后一个元素,则直接在数组后面添加就行。否则,需要利用for循环来对数组进行遍历。如果要插入元素小于数组中的某个元素,就在该元素前面进行添加要插入的元素退出循环即可。

var arr = [1, 2, 4, 6, 7, 10];
        function insert(m) {
            if (m > arr[arr.length - 1]) {
                //因为这是一个从小到大的数组,让插入的元素与最后一个数的对比
                arr.push(m);
                document.write(arr); //直接返回输出结果
            } else {
                for (var i = 0; i < arr.length; i++) {
                    if (m <= arr[i]) {
                        //让插入的元素m和arr数组里的每个值进行比较
                        arr.splice(i, 0, m); //在第i个地方插入m
                        break; //打断循环,不然会一直下去,造成死循环。
                    }
                }
                document.write(arr);
            }
        }
        insert(5);

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值