• JS-数组操作3


    1. 找出数组 arr 中重复出现过的元素

    function duplicates(arr) {
        var result = [];
        var count = [];
        for (var i=0;i<arr.length;i++) {
            if(count[arr[i]]) {//count用来记录数组中元素出现的次数,key是元素,value是次数。
                count[arr[i]]++;
            }
            else {
                count[arr[i]]=1;
            }
        }
        for (var i=0;i<count.length;i++) {
            if (count[i]>1) {
                result.push(i);//这里要传入的是元素也就是key
            }
        }
        return result;
    }
    function duplicates(arr) {
     var result = [];
        arr.forEach(function(elem){
           if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem) == -1){
               result.push(elem);
           }
        });
        return result;
    }

    2. 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组

    function square(arr) {
        var result = [];
        arr.forEach(function(e) {
            result.push(e*e);
        });
        return result;
    }
    function square(arr) {
        return arr.map(function(e) {
            return e*e;
        });
    }

    3. 在数组 arr 中,查找值与 item 相等的元素出现的所有位置

    function findAllOccurrences(arr, target) {
        var result = [];
        arr.forEach(function(item,index,arr) {
            if (item==target) {
                result.push(index);
            }
        });
        return result;
    }
      参考别人的:
    function findAllOccurrences(arr, item) { return arr.map(function(e, index) { return e === item ? index : -1; /* 样例返回结果为[ -1, -1, -1, -1, -1, -1, -1, 0, 6 ] */ }).filter(function(i) { return i !== -1; /* 过滤掉 i === -1 的情况 */ }) }

    // ES6箭头函数版
        const findAllOccurrences = (arr, item) =>
            arr.map((e, index) => e === item ? index : -1)   
               .filter(i => i !== -1);
    这个比较简洁的也可以实现。
    function
    findAllOccurrences(arr, target) { return arr.map(function(item,index,arr) { if (item==target) { return index; } }); }

    4. 

  • 相关阅读:
    C# 杂项
    C# 数组
    我的博客第一天
    Java使用多线程异步执行批量更新操作
    Python爬取百度图片
    以友盟+U-Push为例,深度解读消息推送的筛选架构解决方案应用与实践
    python自动化办公之爬取HTML图片写入PPT实战
    理解Python闭包,这应该是最好的例子
    爬取b站《守护解放西》弹幕
    爬取b站《守护解放西》弹幕
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10753438.html
Copyright © 2020-2023  润新知