javascript删除数组中重复元素代码实例

快乐打工仔 分类:实例代码

本章节分享一段代码,它实现了能够删除数组中的重复元素。

代码实例如下:

Array.prototype.del = function(){
  var a = {}, c = [], l = this.length;
  for (var index = 0; index < l; index++) {
    var b = this[index];
    var d = (typeof b) + b;
    if (a[d] === undefined) {
      c.push(b);
      a[d] = 1;
    }
  }
  return c;
}
var arr=[1,2,5,9,12,2];
console.log(arr.del());

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).Array.prototype.del = function(){},通过原型方式为Array实例对象添加一个del()方法。

(2).var a = {}, c = [], l = this.length;

var a = {},声明一个对象,用来存储数组存在元素的标识。

c = [],声明一个空数组,这个是最终是返回的无重复元素的数组。

l = this.length,获取原来数组的长度。

(3).for (var index = 0; index < l; index++) {},遍历数组中的每一个元素。

(4).var b = this[index],将对应索引的数组值赋值给变量b。

(5).var d = (typeof b) + b,声明一个变量d,它是用作对象的属性。(typeof b) + b可以防止只是用b作为属性出现的"1"和1被认为同一个属性的情况。

(6).if (a[d] === undefined) {

  c.push(b);

  a[d] = 1;

},判断对象中是否具有相应的属性。

如果没有,那么就将此元素存入数组C。

并且将a的属性名设置为d,属性值为1。

二.相关阅读:

(1).prototype可以参阅javascript prototype原型一章节。

(2).push()方法可以参阅javascript push()一章节。

(3).typeof可以参阅javascript typeof 一章节。

回复

我来回复
  • 暂无回复内容