zoukankan      html  css  js  c++  java
  • 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. 

  • 相关阅读:
    敏捷开发-各个原则的理解
    DWH中增量数据的抽取
    SSIS的部署和配置
    Checkpoint 和Breakpoint
    两种动态SQL
    SQLServer查询计划
    程序员接项目的经验1
    Date.prototype.format
    前端颜色选择器
    Idea快捷键和使用技巧【未完】
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10753438.html
Copyright © 2011-2022 走看看