Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环在Javascript中仅使用重复项创建新数组_Javascript_Arrays - Fatal编程技术网

使用for循环在Javascript中仅使用重复项创建新数组

使用for循环在Javascript中仅使用重复项创建新数组,javascript,arrays,Javascript,Arrays,我需要编写一个函数来查找数组中多次出现的所有元素,然后在数组中返回这些元素示例:输入:[2,7,4,10,12,27,4,7,7,12,10]输出:[4,7,10,12] 这就是我到目前为止所做的: let arr= [4,4,6,8,8,9,10,10] var method1 = function(a) { var counts = []; for(var i = 0; i <= a.length; i++) { for(var j = i; j <

我需要编写一个函数来查找数组中多次出现的所有元素,然后在数组中返回这些元素示例:输入:[2,7,4,10,12,27,4,7,7,12,10]输出:[4,7,10,12]

这就是我到目前为止所做的:

let arr= [4,4,6,8,8,9,10,10]

var method1 = function(a) {
  var counts = [];
    for(var i = 0; i <= a.length; i++) {
        for(var j = i; j <= a.length; j++) {
            if(i != j && a[i] == a[j]) {
                counts.push(a[i]);
                }
              }
            }

    return counts;
}
console.log(method1(arr));
设arr=[4,4,6,8,8,9,10,10]
var method1=函数(a){
var计数=[];
对于(var i=0;i您可以使用和比较元素的and来检查是否发生多次

const method1=(arr)=>[…新集合(arr.filter(elm=>arr.indexOf(elm)!==arr.lastIndexOf(elm))]
console.log(方法1([2,7,4,10,12,27,4,7,7,12,10]))
您使用和比较元素的and来检查是否发生多次

const method1=(arr)=>[…新集合(arr.filter(elm=>arr.indexOf(elm)!==arr.lastIndexOf(elm))]

log(method1([2,7,4,10,12,27,4,7,7,12,10]))
您可以使用哈希表来计算值,如果您有两个计数,则使用此元素

var数组=[2,7,4,10,12,27,4,7,7,12,10],
hash=Object.create(null),
result=array.filter(v=>(hash[v]=(hash[v]| | 0)+1)==2);

console.log(result);
您可以使用哈希表来计算值,如果您有两个计数,则使用此元素

var数组=[2,7,4,10,12,27,4,7,7,12,10],
hash=Object.create(null),
result=array.filter(v=>(hash[v]=(hash[v]| | 0)+1)==2);

console.log(result);
使用一个标记来表示该项已被看到。这可以通过字典来完成

设arr=[4,4,6,8,8,9,10,10];
功能解决方案(arr){
常量标记={};
常量重复项=[]
用于(arr的施工项目){
如果(标记[项目]){
重复。推送(项目);
}否则{
标记[项目]=真;
}
}
返回副本;
}
常数s=溶液(arr);

console.log(s);
使用一个标记来表示该项已被看到。这可以通过字典来完成

设arr=[4,4,6,8,8,9,10,10];
功能解决方案(arr){
常量标记={};
常量重复项=[]
用于(arr的施工项目){
如果(标记[项目]){
重复。推送(项目);
}否则{
标记[项目]=真;
}
}
返回副本;
}
常数s=溶液(arr);
console.log;
您可以使用

这里的想法是:-

  • 我们使用两个键
    unique
    repeated
    初始化
    op
  • 无论何时第一次出现任何数字,我们都将该数字作为键值对初始化
    unique
    。现在,当同一数字再次出现时,我们将该数字作为键值对设置
    repeated
    属性
  • 最后,我们从
    repeated
    键中取出值
设arr=[2,7,4,10,12,27,4,7,7,12,10]
让op=arr.reduce((op,inp)=>{
if(op.unique[inp]!==未定义){
操作重复[inp]=inp
}否则{
op.unique[inp]=inp
}
返回操作
},{唯一:{},重复:{})
console.log(Object.values(op.repeated))
您可以使用

这里的想法是:-

  • 我们使用两个键
    unique
    repeated
    初始化
    op
  • 无论何时第一次出现任何数字,我们都将该数字作为键值对初始化
    unique
    。现在,当同一数字再次出现时,我们将该数字作为键值对设置
    repeated
    属性
  • 最后,我们从
    repeated
    键中取出值
设arr=[2,7,4,10,12,27,4,7,7,12,10]
让op=arr.reduce((op,inp)=>{
if(op.unique[inp]!==未定义){
操作重复[inp]=inp
}否则{
op.unique[inp]=inp
}
返回操作
},{唯一:{},重复:{})

console.log(Object.values(op.repeated))
可能重复的nice技术!那么为什么不使用空对象
{}
literal而不是
对象。create(null)
?它生成一个没有原型的空对象,比如
toString
。nice技术!为什么不使用空对象
{}
literal而不是
Object.create(null)
?它生成一个没有原型的空对象,比如
toString