【前端小小白的学习之路】---->用JS编写一个函数,返回数组中重复出现过的元素

用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码:

    var arr = [1, 2, 3, 1, 2, 3, 4, 5];
    var getRepeat = function (arr) {
        var obj = {};
        for (var i = 0, len = arr.length; i < len; i++) {
            if (obj[arr[i]] == undefined) {
                obj[arr[i]] = 1;
            } else {
                obj[arr[i]]++;
            }
        }
        for (var key in obj) {
            obj[key] <= 1 && delete obj[key];
        }
        return Object.keys(obj);
    }
    console.log(getRepeat(arr));//打印结果:(3) ["1", "2", "3"]

而数组去重的方法详见我的另一篇博文-->数组去重

时间: 2024-10-21 05:59:54

【前端小小白的学习之路】---->用JS编写一个函数,返回数组中重复出现过的元素的相关文章

[前端小小白的学习之路]--PHP数组

今天学习了PHP数组,整理下相关知识点. PHP数组是什么? php数组是一个能在单个变量中存储多个值的特殊变量. 如:你有一个项目清单(人名清单),将其存储到单个变量中,如下: $name1 = '张三'; $name2 = '李四'; $name3 = '王五'; $name4 = '赵六';.... 如果这个清单里面有上百号人名,你要从中找到指定的某一个这样会有点麻烦了. 解决这个问题的办法就是创建一个数组. 数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值. 在 PHP 中,

【前端小小白的学习之路】JavaScript 开发的45个经典技巧

JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是很多新手踏入编程世界的第一个语言.既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人.能够编写结构清晰.性能高效的JavaScript代码的开发人员,现如今已成了招聘市场最受追捧的人. 在这篇文章里,我将分享一些JavaScript的技巧.秘诀和最佳实践,除了

【前端小小白的学习之路】 JavaScript中的十个难点,你有必要知道。

1. 立即执行函数 立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行.它没有绑定任何事件,也无需等待任何异步操作: (function() { // 代码 // ... })(); function(){…}是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用了这个函数.立即执行函数也可以理解为立即调用一个匿名函数.立即执行函数最常见的应用场景就是:将var变量的作用域限

【前端小小白的学习之路】vue学习记录④(路由传参)

通过上篇文章对路由的工作原理有了基本的了解,现在我们一起来学习路由是如何传递参数的,也就是带参数的跳转. 带参数的跳转,一般是两种方式: ①.a标签直接跳转. ②点击按钮,触发函数跳转. 在上篇文章中我们已经有两个页面(Helloworld.vue&Hello.vue),现在我准备往Hello.vue里面添加3个链接,分别对应两种情况的跳转.  第一步:在原来的Hello.vue里添加路由链接跳转的代码(见第38-44行代码),添加后的Hello.vue代码如下: 1 <template&g

【前端小小白的学习之路】vue学习记录(vue-cli脚手架构建项目结构)

我们直接从vue的工程化开始入手. 在这里用git命令行搭建项目环境.(当然直接cmd命令行下也是一样的) git下载安装地址:https://www.git-scm.com/download/win git使用教程:http://www.cnblogs.com/havenshen/p/3493522.html git常用命令整理:http://www.cnblogs.com/luxiaoxing/p/7545403.html 1.node安装. node下载安装地址:http://nodejs

【前端小小白的学习之路】面试题之(冒泡排序)

冒泡排序在面试中遇到的概率也是很大的. 什么是冒泡排序呢? 其原理就是依次比较相邻的两个值,如果后面的比前面的小,则将小的排到前面.依照这个规则进行多次并且递减的迭代,直到顺序正确. 请看下面引用网上的动态图可以更直观的了解冒泡排序的一个工作原理: 请看下面的代码是如何实现的冒泡排序: var examplearr = [2, 3, 1, 5, 4]; function sortarr(arr) { for (i = 0; i < arr.length - 1; i++) { for (j =

【前端小小白的学习之路】vue学习记录②(hello world!)

接着上篇vue-cli脚手架构建项目结构建好项目之后,就开始写个“hello world!”吧~~~ vue玩的都是组件,所以开发的也是组件. 1.新建helloworld.vue.(删除Hello.vue)代码如下: <!--模板部分--> <template> <div class="container"> <h1>hello,world!</h1> <p>{{test}}</p> </div

[前端小小白的学习之路]--Bable实现由ES6转译为ES5

Babel是一个广泛使用的转码器,可以将ES6代码转译为ES5代码,从而在现有环境下执行. 举例说明: 转译前(ES6格式)代码如下: let User = { name : '张三', age : 22 }; let { name, age } = User; console.log( name, age ); 转译后(ES5格式)代码如下: 'use strict'; var User = { name: '张三', age: 22 }; var name = User.name, age

【前端小小白的学习之路】vue学习记录⑤(组件通信-父与子)

今天我们看一下组件通信. 经过前面几篇文章,我们已经可以构建出完整的单个组件,并利用路由使其串联起来访问了. 但这明显还是不够的.一个页面不可能就是个单组件,一般是由多个组件合成的.正因为如此,组件之间肯定是有相互关系的,我们就称这种现象叫组件通信. 比如父组件发生了某项改变,子组件会跟着相应发生变化:反过来,子组件有了某种改变,父组件有时也会随之做出调整.那么这种现象我们称之为双向数据流动. 然而,vue的作者敏锐的认识到,双向数据流带来便捷的同时,也存在着极大的安全隐患. 父组件将变化传递给