zoukankan      html  css  js  c++  java
  • 面试题之JavaScript 请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    小编才疏学浅,若文章、答案有错误之处,欢迎邮件通知小编及时修改,同时也可以面试题投稿。最后祝大家共同进步!
    请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
    来自网上搜索的答案:

    Array.prototype.distinct = function() {
        var ret = [];
        for (var i = 0; i < this.length; i++)
        {
            for (var j = i+1; j < this.length;) {   
                if (this[i] === this[j]) {
                    ret.push(this.splice(j, 1)[0]);
                } else {
                    j++;
                }
            }
         }
         return ret;
    }
    //for test
    alert(['a','b','c','d','b','a','e'].distinct());
    

    大致的思路都差不多,不同的是答案使用的是splice方法,splice是array中最强大的方法,可以进行插入删除替换的功能(高级js教程P95),代码中splice(j,1)[0],表示在第j位,删除一个项,splice返回被删除的项组成的数组,当前数组中只删除了一个,只有一项,所以是[0]取第一位即为删除的项数。

  • 相关阅读:
    Jmeter 脚本录制
    Scrapy 爬虫模拟登陆的3种策略
    Scrapy Shell
    Ipython
    XPath helper
    python3 接口测试数据驱动之操作mysql数据库
    Pandas 基础(17)
    Pandas 基础(16)
    在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
    Pandas 基础(15)
  • 原文地址:https://www.cnblogs.com/jiaoshou/p/13714368.html
Copyright © 2011-2022 走看看