写了一个数组去重,怎么把方法添加到原型链

katakibb 2017-03-13 09:13:19
我写了一个数组去重,如何把方法添加到原型链? 对原型链不理解 求大神指教
var array=[1,2,3,1,2,4];
var noarray=[];
for (var i=0;i<array.length;i++){
if (noarray.indexOf(array[i])==-1){
noarray.push(array[i]);
}
}
console.log(noarray);
...全文
538 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
katakibb 2017-03-14
  • 打赏
  • 举报
回复
引用 13楼天际的海浪 的回复:
[quote=引用 12 楼 katakibb 的回复:] [quote=引用 11楼天际的海浪 的回复:]写一个直接修改原数组的

var arr=new Array(1,2,1,5,3,1,5,4,2);
Array.prototype.removalDuplicate = function(){
	var obj = {};
	for (var i = 0; i < this.length; i++) {
		var v = this[i];
		if (obj[v])
			this.splice(i--,1);
		else
			obj[v] = true;
	}
};
arr.removalDuplicate();
alert(arr);
大神,这个方法也是添加在原型链上的吗?[/quote] 是的,从arr.removalDuplicate();这样的调用方式就能看出来啊。[/quote]对原型链没有什么概念,没学习这个呢。不过非常的感谢大神,我学习一下原理
天际的海浪 2017-03-13
  • 打赏
  • 举报
回复
引用 12 楼 katakibb 的回复:
[quote=引用 11楼天际的海浪 的回复:]写一个直接修改原数组的

var arr=new Array(1,2,1,5,3,1,5,4,2);
Array.prototype.removalDuplicate = function(){
	var obj = {};
	for (var i = 0; i < this.length; i++) {
		var v = this[i];
		if (obj[v])
			this.splice(i--,1);
		else
			obj[v] = true;
	}
};
arr.removalDuplicate();
alert(arr);
大神,这个方法也是添加在原型链上的吗?[/quote] 是的,从arr.removalDuplicate();这样的调用方式就能看出来啊。
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 11楼天际的海浪 的回复:
写一个直接修改原数组的

var arr=new Array(1,2,1,5,3,1,5,4,2);
Array.prototype.removalDuplicate = function(){
	var obj = {};
	for (var i = 0; i < this.length; i++) {
		var v = this[i];
		if (obj[v])
			this.splice(i--,1);
		else
			obj[v] = true;
	}
};
arr.removalDuplicate();
alert(arr);
大神,这个方法也是添加在原型链上的吗?
天际的海浪 2017-03-13
  • 打赏
  • 举报
回复
写一个直接修改原数组的

var arr=new Array(1,2,1,5,3,1,5,4,2);
Array.prototype.removalDuplicate = function(){
	var obj = {};
	for (var i = 0; i < this.length; i++) {
		var v = this[i];
		if (obj[v])
			this.splice(i--,1);
		else
			obj[v] = true;
	}
};
arr.removalDuplicate();
alert(arr);
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 9楼当作看不见 的回复:
三个参数 ,第一个表示值 第二个表示 序号,也就是数组下表 ,第三个表示数组本身
非常感谢!
当作看不见 2017-03-13
  • 打赏
  • 举报
回复
三个参数 ,第一个表示值 第二个表示 序号,也就是数组下表 ,第三个表示数组本身
天际的海浪 2017-03-13
  • 打赏
  • 举报
回复
引用 7 楼 katakibb 的回复:
[quote=引用 6楼当作看不见 的回复:]

	var xx=new Array(1,3,4,2,1,3,1);
Array.prototype.xx=function(){
	console.log(this);
	var arr =this;
	var noarray=new Array();
	this.forEach(function(v,i,array){
		if (noarray.indexOf(array[i])==-1){
            noarray.push(array[i]);
           }
	});
	return noarray;
};
console.log(xx.xx());
这样获取去重后的数组,就是调用这个函数就可以。不会改变原数组。 如果有需求可以这样写 arr=arr.xx();
大神,函数里传了三个参数 v i array 这三个参数的作用不太理解,第一个v好像没有用上[/quote] array[i] 可以直接改成 v
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 6楼当作看不见 的回复:

	var xx=new Array(1,3,4,2,1,3,1);
Array.prototype.xx=function(){
	console.log(this);
	var arr =this;
	var noarray=new Array();
	this.forEach(function(v,i,array){
		if (noarray.indexOf(array[i])==-1){
            noarray.push(array[i]);
           }
	});
	return noarray;
};
console.log(xx.xx());
这样获取去重后的数组,就是调用这个函数就可以。不会改变原数组。 如果有需求可以这样写 arr=arr.xx();
大神,函数里传了三个参数 v i array 这三个参数的作用不太理解,第一个v好像没有用上
当作看不见 2017-03-13
  • 打赏
  • 举报
回复 1

	var xx=new Array(1,3,4,2,1,3,1);
Array.prototype.xx=function(){
	console.log(this);
	var arr =this;
	var noarray=new Array();
	this.forEach(function(v,i,array){
		if (noarray.indexOf(array[i])==-1){
            noarray.push(array[i]);
           }
	});
	return noarray;
};
console.log(xx.xx());
这样获取去重后的数组,就是调用这个函数就可以。不会改变原数组。 如果有需求可以这样写 arr=arr.xx();
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 4楼scscms太阳光 的回复:
去重的方法很多 http://scscms.com/html/article/20140423-22284575.html
非常感谢,我看看,学习一下,这个贴主要是数组去重的方法添加到原型链上,我对原型链不懂。。
scscms太阳光 2017-03-13
  • 打赏
  • 举报
回复
katakibb 2017-03-13
  • 打赏
  • 举报
回复
引用 2 楼 qq_29594393 的回复:
Array.propotype.xx = function (){ var array =this; var noarray=[]; for (var i=0;i<.length;i++){ if (noarray.indexOf(array[i])==-1){ noarray.push(array[i]); } } this = noarray; }
大神 this = noarray; 这句的 this爆红 不知道原因
当作看不见 2017-03-13
  • 打赏
  • 举报
回复
Array.propotype.xx = function (){ var array =this; var noarray=[]; for (var i=0;i<.length;i++){ if (noarray.indexOf(array[i])==-1){ noarray.push(array[i]); } } this = noarray; }
katakibb 2017-03-13
  • 打赏
  • 举报
回复
求大神写一下代码 帮我解答疑惑

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧