2013-07-31 100 views
0

这里是我的问题...JavaScript数组 - 查找重复

考虑到与数字填充作为函数参数数组,生成最终的数组,它包含从阵列中任何重复号。 例如,给定阵列[1,2,4,4,3,3,1,5,3]它应该返回[1,4,3]。额外奖励积分返回一个排序数组。

我刚开始使用Javascript - 我知道语言,但是,以正确的方式使用它(作为一个应该)我仍然在处理。

我这个伪代码将是:

之上创建var numbers = [1, 2, 4, 4, 3, 3, 1, 5, 3];

与数字数组然后创建一个名为“结果” var result = [];

空数组创建一个for循环,通过云var数字来检查重复项,然后将填充空白数组“结果”与副本

for (var i = 0;i < numbers.length; i++) { 
//This is where I'm stuck... 
} 

我不知道该怎么对循环中做填充VAR的结果,并抛出进来...给定的数组必须是一个函数参数,它是有道理的,所以你可以在一个地方更改数字。

这个在我的思维过程的任何反馈,到目前为止是极大的赞赏,但最终我想了解如何实现这一目标。

这里是我进步的jsfiddle那么远,这样做(这不是唯一的方法)的http://jsfiddle.net/fbauW/

+2

额外加分?我闻到家庭作业... –

+0

什么是地狱...额外奖励points..downvote..google它,你会得到10个不同的答案,就像在stackoverflow上... –

+0

哇,我真的没有期待这样的消极回应。 ..我更多认为这将表明我正在努力,我正在积极寻求帮助,以便我能够学习和理解......不是成为开发人员的一部分吗?或者有你们俩忘了这... – Filth

回答

5

的一种方法是通过检查数组中的现有元素。看看JavaScript的lastIndexOf功能:

http://www.w3schools.com/jsref/jsref_lastindexof_array.asp

它将返回-1,如果对象不数组中存在,如果存在,将返回后的位置的索引比你英寸因此,您可以在循环中使用if语句来检查是否存在包含您的数字的另一个索引,并将其添加到结果数组中IF和ONLY如果您返回的索引!=您当前所在的索引(if它们相等,这意味着列表中只有一个元素)。

如果您需要更多的帮助,在这里评论,我可以输入一些代码!

祝你好运!

+0

太棒了 - 谢谢!:-) – Filth

+0

这里是我创建的JSFiddle,我似乎无法弄清楚如何得到任何进一步的 - 你能帮忙吗? http://jsfiddle.net/fbauW/ – Filth

+2

@Filth好像你还没有将lastIndexOf逻辑应用到你的if语句中。我修改了if语句以包含以下内容的检查:1.元素是否在arr中?和2.我们是否已经宣布该元素是重复的?如果元素在arr中不是单独存在的,而且我们也没有将它添加为副本,那么可以添加它。这里是更新的工作小提琴:http://jsfiddle.net/gbzVF/1/ – 2013-08-01 11:23:47

1
Array.prototype.contains = function(k) { 
    for (var p in this) 
    if (this[p] === k) 
     return true; 
    return false; 
}; 
//this prototype function checks if an element is already in the array or not 
//go through all the array and push the element to result if it is not 
//this way we can eliminate duplicates 
//result will contain the resultant array 
function findDuplicates(Numbers) { 
    var arrayLength = Numbers.length, i, j, result = []; 
    for (i = 0; i < arrayLength; i++) { 
    for (j = 0; j < arrayLength; j++) { 
     if (a[i] == a[j] && i != j && !result.contains(a[i])) { 
     result.push(a[i]); 
     } 
    } 
    } 
    return result; 
} 
+3

没有解释的代码几乎总是没用。 –

+1

你是怎么这么快输入的...... –

+0

刚把它作为一个任务昨天 – Lonely