利用js的prototype属性给数组去重

在前端开发构造数据的时候,经常需要对数组的数据去掉重复值

DEMO:数组里的颜色去掉重复

  1. //扩展对象 
  2. Array.prototype.distinct = function () { 
  3.     var a = {}, c = [], l = this.length; 
  4.     for (var i = 0; i < l; i++) { 
  5.         var b = this[i]; 
  6.         var d = (typeof b) + b; 
  7.         if (a[d] === undefined) { 
  8.             c.push(b); 
  9.             a[d] = 1; 
  10.         } 
  11.     } 
  12.     return c; 
  13.  
  14. var arr = ["白色","白色","红色","黑色","红色"]; 
  15. console.log(arr.distinct());//白色, 红色, 黑色 

Javascript中的prototype属性使用说明(函数功能扩展)

此处的prototype,不是指著名的prototype.js框架,而是Javascript中的prototype属性,Javascript中的继承一般都依赖这个特殊的属性

在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,所以才会允许['a','b','c'].push('d');这样的操作存在

 

相关经验

导读书签
书签初始化中…