二维数组去掉相同的元素,不考虑顺序 ,有什么好办法吗

MSOKD 2013-07-07 02:14:02
比如这个数组 var a=[["1","3","10"],["3","1","10"],["9","2"],["1","10","3"]];

我想去掉["1","3","10"],["3","1","10"]["1","10","3"] 这3个元素,有什么好办法吗
...全文
281 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwbb123 2013-07-07
  • 打赏
  • 举报
回复
先排序,在匹配~
wohuifude123 2013-07-07
  • 打赏
  • 举报
回复
看到前面的玉,也写一个自己的
var a=[["1","3","10"],["3","1","10"],["9","2"],["1","10","3"]];

var ta=a.join(",").split(",").sort();//转换成为一维数组进行排序

var i = 0;

var b = [];

function number()
{
	for(i=0; i<ta.length-1; i++)
	{
		if(ta[i] != ta[i+1])
		{
			b.push(ta[i+1])
		}
	};
	b.splice(0,1);
	b.splice(1,1);
	document.write(b);
};

number();
xuzuning 2013-07-07
  • 打赏
  • 举报
回复
抛砖引玉
var a=[["1","3","10"],["3","1","10"],["9","2"],["1","10","3"]];

var b = [];
for(var i in a) b.push(a[i].sort().join(','));
b.sort();
var c = [];
for(i=1; i<b.length; i++) {
  if(b[i] != b[i-1]) c.push(b[i]);
}
for(i in c) c[i] = c[i].split(',');
alert(c);
wohuifude123 2013-07-07
  • 打赏
  • 举报
回复
xy与xz与yz比较 两两求积,如何?
wohuifude123 2013-07-07
  • 打赏
  • 举报
回复
先判断元素个数 拿3个元素比较 xy与xz与xy比较 全部相等就说明三个元素相同如何?
浙外 2013-07-07
  • 打赏
  • 举报
回复
可不可以这样考虑:找这些数的区别性。比方说三个数(两个数的和三个数的可以区分开来比较)的和以及三个数的积的值都一样,这样表示一致。 当然这个需要数学证明找规律。楼主自己努力啊……
wohuifude123 2013-07-07
  • 打赏
  • 举报
回复
我就这办法 比如这个["1","3","10"] 拿出1与之后的比较 比较出都含有1出return["3","1","10"],["1","10","3"] 然后再用第一个的3比较,看挑出来的两个是否还有3 没想到什么好方法

87,997

社区成员

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

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