js-数组中去掉重复的

关于一个固定的已知的数组例如:var arr = [‘name‘,‘OK‘,‘123‘,‘n‘,‘look‘,‘777‘,‘n‘,‘123‘,‘name‘,1,3,5,1,‘OK‘];

那么问题来了,我们怎么能去掉重复的字符串或者数字,得到新的数组呢!

方法①:

function takeRepetition_1(arr){
  var data= {};  //这里会遍历data的arr[i]属性 因为data为空 理所当然返回undefined
  var result = [];
  for(var i=0;i<arr.length;i++){
    if( !json[arr[i]] ){
      json[arr[i]] = 1;  //所以当if满足!undefined 即为true的时候 给data的arr[i]的属性的值设定为1
      result.push( arr[i] ); //然后放入结果数组里 所以当arr数组中有重复的值时 if不满足条件 就不会添加到数组了
    }
  }
  return result;
}
console.log(unqiue(arr));

方法②:
Array.prototype.takeRepetition_2 = function() {  //两次循环遍历数组,取值做等比比较
  var a = [];
  var l = this.length;
  for(var i = 0 ;i< l; i++){ 
    for(var j = i + 1 ;j < l; j++) {
      if (this[i] === this[j]) {

        j = ++i

      }
    }
    a.push(this[i]);
  }
  return a;
}
console.log(arr.takeRepetition_2());

方法③:

Array.prototype.takeRepetition_3 = function(){

  var n = []; //一个新的临时数组
  for(var i = 0; i < this.length; i++) {  //如果当前数组的第i已经保存进了临时数组,那么跳过,否则把当前项push到临时数组里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
}
console.log(arr.takeRepetition_3());

好啦 欢迎大家有不同的方法一起讨论哦!~~~~~

时间: 2024-08-07 19:17:48

js-数组中去掉重复的的相关文章

js去除数组中的重复值

hasOwnProperty(property) 方法 JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性. 使用方法: object.hasOwnProperty(proName) 其中参数object是必选项.一个对象的实例.proName是必选项.一个属性名称的字符串值. 如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true:反之则返回 false.此方法无法检查该对

js在数组中删除重复的元素自保留一个

js在数组中删除重复的元素自保留一个 第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 用到两个函数:for ...in 和 indexOf() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <script type="text/javascript"> var student = ['qiang','ming','tao','li','liang','you','qiang'

Ex 2_14 去掉数组中所有重复的元素..._第二次作业

首先利用归并排序算法对数组进行排序,时间复杂度为O(nlogn),接着再利用时间复杂度为O(n) 的去重复算法去掉数组中的重复元素.总的时间复杂度为O(nlogn). (这题应该用分支算法解决)以下为分支算法 代码不是分支算法 1 package org.xiu68.ch02.ex2; 2 3 public class Ex2_14 { 4 //基于分治法的归并排序算法 5 public static void main(String[] args) { 6 7 int[] a=new int[

移除数组中的重复元素

给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度. 例如:数组 A={1,1,2},你的程序应该输出 222 即新数组的长度,新数组为 {1,2}. 要求:不能新开数组分配额外的空间,即常数空间限制. 输入格式 输入一个整数 n(1≤n≤1000). 接下来一行 nnn 个整数 Ai(?1000≤Ai≤1000),表示数组 A 中的每个元素. 输出格式 输出一个整数,表示新数组长度. 样例输入 5 0 0 1 1 2 样例输出 3 Python的数组真心的不方便,慢慢适应吧.

获取JS数组中的相同元素的名称和数量

Js代码   <script> var ary =["aaa","露露","bbb","aaa","ccc","ccc","aaa","露露","haha"]; var res = []; ary.sort(); for(var i = 0;i<ary.length;) { var count = 0; for

JavaScript去除数组中的重复值

用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能. Javascript 中的原型函数(prototype)的工作原理,在 javascript 中每次声明新函数的过程中,就会为其创建一个 prototype 的属性.在未加其他附带条件情况下,所有的 prototype 属性都会自动获取 constractor 属性,constructor 内包含一个指向 prototype 属性所属函数的指针(就是说 constructor 回指构造函数本身).静乐县隗承五金

第11题:移除数组中的重复元素

/* 前几天去爬泰山了,一直没更新,上山时还没什么感觉,下山后简直要崩溃啊,骨头都散了,继续更新...... */ 第11题:移除数组中的重复元素 给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度. 例如: 数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2} 要求: 不能新开数组分配额外的空间.即常数空间限制. 提示: 输入一个整数n,以及其对应的数组A[n],输出新数组长度 样例输入 5 0 0 1 1 2 样例输出 3 解析: #include <stdi

【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】

[026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for anot

计蒜客 移除数组中的重复元素

移除数组中的重复元素 给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度. 例如: 数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2} 要求: 不能新开数组分配额外的空间.即常数空间限制. 提示: 输入一个整数n,以及其对应的数组A[n],输出新数组长度 样例输入 5 0 0 1 1 2 样例输出 3 1 #include<iostream> 2 #include<vector> 3 #define MAX 100000 4 using names

JSK 11: 移除数组中的重复元素

题目描述 给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度. 例如:数组 $A = \{1, 1, 2\}$,你的程序应该输出 $2$ 即新数组的长度,新数组为 $\{1, 2\}$. 要求:不能新开数组分配额外的空间,即常数空间限制. 输入 输入一个整数 $n(1 \leq n \leq 1000)$. 接下来一行 $n$ 个整数 $A_i(-1000 \leq A_i \leq 1000)$,表示数组 $A$ 中的每个元素. 输出 输出一个整数,表示新数组长度. 样例输入 5 0