Javascript数组-查找重复项

Javascript数组-查找重复项,javascript,Javascript,这是我的问题 给定一个以数字作为函数参数填充的数组,生成一个结果数组,该数组包含数组中的任何重复数字。 例如,给定数组[1,2,4,4,3,3,1,5,3],它应该返回[1,4,3]。要获得额外奖励积分,请返回一个排序数组。 我是从Javascript开始的——我知道这门语言,但是,我仍然在以正确的方式使用它 我的伪代码是: 用上面的数字创建一个数组varnumbers=[1,2,4,4,3,3,1,5,3] 然后创建一个名为“result”var result=[]的空数组 创建一个for循环

这是我的问题

给定一个以数字作为函数参数填充的数组,生成一个结果数组,该数组包含数组中的任何重复数字。 例如,给定数组[1,2,4,4,3,3,1,5,3],它应该返回[1,4,3]。要获得额外奖励积分,请返回一个排序数组。

我是从Javascript开始的——我知道这门语言,但是,我仍然在以正确的方式使用它

我的伪代码是:

用上面的数字创建一个数组
varnumbers=[1,2,4,4,3,3,1,5,3]

然后创建一个名为“result”
var result=[]的空数组

创建一个for循环,通过var编号检查重复项,然后用重复项填充空数组“result”

for (var i = 0;i < numbers.length; i++) {
 //This is where I'm stuck...
}
for(变量i=0;i
我不确定在for循环中如何填充var结果并加入到混合中。。。给定的数组必须是有意义的函数参数,以便您可以在一个位置更改数字

到目前为止,对我的想法过程的任何反馈都非常感谢,但最终我想学习如何实现这一点

以下是我迄今为止取得的一些进展

Array.prototype.contains=函数(k){
for(本文件中的var p)
如果(此[p]==k)
返回true;
返回false;
};
//此原型函数检查数组中是否已存在元素
//遍历所有数组,如果不是,则将元素推送到结果
//这样我们可以消除重复项
//结果将包含结果数组
功能查找副本(数字){
var arrayLength=Numbers.length,i,j,result=[];
对于(i=0;i
执行此操作的一种方法(这不是唯一的方法)是检查数组中的现有元素。看看JavaScript的lastIndexOf函数:

如果对象在数组中不存在,它将返回-1;如果对象存在,它将返回比您所在位置更晚的索引。因此,您可以在循环中使用if语句来检查是否有另一个索引包含您的编号,并将其添加到结果数组中,当且仅当您返回索引时!=您当前所在的索引(如果它们相等,则表示列表中只有一个该元素)

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


祝你好运

没有解释的代码几乎总是没用的。你是怎么打得这么快的…昨天刚把它作为作业拿到的谢谢Lonely-你介意解释一下这里发生了什么吗?Lonely在这里做的是原型设计(把它想象成“定制”或“扩展”)一个名为contains的数组函数,它本身通过一个for循环来搜索项目。如果它这样做了,那么它将返回true,否则返回false。该死的…额外的奖励点数..向下投票..谷歌搜索你会在stackoverflow上得到10个不同的答案…哇,我真的没想到会有这样的负面反应…我更仔细地想了一下这表明我正在努力,我正在积极寻求帮助,以便我能够学习和理解…这不是作为一名开发人员的一部分吗?或者你们两个忘记了这一点…不要生气,朋友,所以已经有了这样的问题的答案!!!看一看…如果你想真正学习一些东西,你会尝试一些东西…你不会向同事展示你的想法因为你什么都不想尝试当你说“额外加分”是什么意思你怎么能给额外加分请解释这是一项作业,你会看到上面我给出了一个伪代码的例子,说明了我对这个问题的思考过程。我已经到了一堵墙-只是来堆栈寻求帮助d了解学习…理想情况下-不必证明问题的正确性-这并不是缺少信息。你已经看到了一些你不喜欢的东西,并决定对此发表意见-很酷…这是我的回答-要么帮助,因为这是堆栈溢出的原因,要么保持安静。我从Rebecca Murphy的js中识别出该数组-评估!即使她建议寻求帮助,也不要担心。这是我创建的一个JSFIDLE,我似乎不知道如何进一步了解它-你能提供帮助吗?@Filth似乎你还没有将lastIndexOf逻辑应用到你的if语句中。我修改了if语句以包含一个检查:1.是元素吗arr中的单独元素?和2.我们是否已经将该元素声明为重复元素?如果该元素在arr中不是单独的,并且我们没有将其添加为重复元素,那么让我们添加它。这是更新的工作提琴:哇,非常感谢@Pixelational-将彻底研究此问题!感谢@Filth再次发布此问题。因为我也有同样的问题问题,我找不到关于堆栈溢出的其他类似问题的解决方案。这个解决方案对我也有帮助。而且,我恨那些投票否决了这个问题的人。这个社区更多的是讨论和帮助,而不是泄气。此外,我做了一个小的更改,也对它做了一个小的更改以获得结果恰当地
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;
}