Вот мое процедурное решение:

ascript я пытаюсь хранить только дубликаты в массиве.

Например, мой начальный массив

[1,1,2,3,3,3,3,4,5,5]

Результат должен быть

[1,3,5]

Я пытался работать с .indexOf () и $ .inArray (), но не могу понять. Я знаю, как удалять дубликаты, но сохранить их довольно сложно.

 DTR900006 нояб. 2017 г., 09:16
@NinaScholz Спасибо!
 Nina Scholz06 нояб. 2017 г., 09:10
@Derek 朕 會 功夫, неважно :-)
 Durga06 нояб. 2017 г., 09:05
 Derek 朕會功夫06 нояб. 2017 г., 09:10
@ NinaScholz Ой ой!
 Nina Scholz06 нояб. 2017 г., 09:05
@ derek, не совсем. в нем должны быть только обманщики и только один из них.

Ответы на вопрос(3)

Вот мое процедурное решение:

var arr = [1,1,2,3,3,3,3,4,5,5]
var arr2 =[];
        for(var i=0; i < (arr.length-1); i++){
                    if (arr2.indexOf(arr[i]) > -1 || arr[i] != arr[i+1]){                       
                        //Do Nothing and move on to the next set
                    }
                    else{
                        arr2.push(arr[i]);                  
                    }
        }   

array#reduce посчитать частоту каждого значения, а затемarray#filter значения, количество которых больше 1.

var data = [1,1,2,3,3,3,3,4,5,5];
var count = data.reduce((o,v)=>{
  o[v] = o[v]+1 || 1;
  return o;
},{});

var duplicate = Object
                  .keys(count)
                  .filter(k => count[k] > 1)
                  .map(Number);
console.log(duplicate);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Другая версия решения с использованием карты.

var data = [1,1,2,3,3,3,3,4,5,5];
var count = data.reduce((map,v)=>{
  map.set(v, (map.get(v) || 0) + 1);
  return map;
},new Map());

var duplicate = Array.from(count)
                     .filter(a => a[1] > 1)
                     .map(a => a[0]);
console.log(duplicate);
.as-console-wrapper { max-height: 100% !important; top: 0; }

 Nina Scholz06 нояб. 2017 г., 09:12
может быть, карта будет работать лучше, потому что она не меняет тип ключа.
 Hassan Imam06 нояб. 2017 г., 09:27
Спасибо за отзыв, добавлено новое решение для использования карты.
Решение Вопроса

проверив, является ли элемент первым и последний индекс не является фактическим индексом.

var array = [1, 1, 2, 3, 3, 3, 3, 4, 5, 5],
    result = array.filter((a, i, aa) => aa.indexOf(a) === i && aa.lastIndexOf(a) !== i);

console.log(result);

Ваш ответ на вопрос