Помогите братья уже второй день голову ломаю не получается решить задачу
Надо код на JavaScripts
JavaScript
Дан целочисленный массив размера N.Удалить из массива все элементы, встречающиеся менее трёх раз
Если без финтов, только циклами, можно так:
let arr = [1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 5, 1, 4, 3, 3, 8, 7, 45, 45, 3, 45, 78];
let obj = {};
for (let num of arr) {
obj[num] = obj[num] ? obj[num] + 1 : 1;
}
/* Каждое новое число сохраняется в качестве ключа объекта, и получает значение 1. А если такой уже есть - значене увеличивается на 1. Так считается количество чисел */
console.log( obj );
for (let key in obj) {
if (obj[key] < 3) {
delete obj[key];
} /* Удаляются те ключи, которые хранят число меньше 3-х */
}
let temp = [];
for (let num of arr) {
if( num in obj ){
/* Если есть такое число в качестве ключа - значит оно встретилось больше 3-х раз */
temp.push( num );
}
}
arr = temp;
console.log( arr );
let arr = [1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 5, 1, 4, 3, 3, 8, 7, 45, 45, 3, 45, 78];
let obj = {};
for (let num of arr) {
obj[num] = obj[num] ? obj[num] + 1 : 1;
}
/* Каждое новое число сохраняется в качестве ключа объекта, и получает значение 1. А если такой уже есть - значене увеличивается на 1. Так считается количество чисел */
console.log( obj );
for (let key in obj) {
if (obj[key] < 3) {
delete obj[key];
} /* Удаляются те ключи, которые хранят число меньше 3-х */
}
let temp = [];
for (let num of arr) {
if( num in obj ){
/* Если есть такое число в качестве ключа - значит оно встретилось больше 3-х раз */
temp.push( num );
}
}
arr = temp;
console.log( arr );
Андрей Оледник
Я люблю тебя бро
Свой вариант писать не буду, но алгоритм по моему таков:
Цикл, в нем счетчик с изначальным значением 0 и вложенный цикл который проверяет элемент на совпадение. Есть совпадение - плюсуем счетчик. Если итоговое значение счетчика после окончания прохода по массиву меньше 3 - ага, полундра, нужно действовать. Присваиваем в новую переменную текущее значение массива и каким нибудь новым циклом отыскиваем все ее вхождения в массиве и удаляем. Счетчик обнуляем.
Как-то так...
Цикл, в нем счетчик с изначальным значением 0 и вложенный цикл который проверяет элемент на совпадение. Есть совпадение - плюсуем счетчик. Если итоговое значение счетчика после окончания прохода по массиву меньше 3 - ага, полундра, нужно действовать. Присваиваем в новую переменную текущее значение массива и каким нибудь новым циклом отыскиваем все ее вхождения в массиве и удаляем. Счетчик обнуляем.
Как-то так...
const arr = [1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 5, 1, 4, 3, 3, 8, 7, 45, 45, 3, 45, 78];
arr.filter((item, index, source) => source.filter(i => i === item).length >= 3)
arr.filter((item, index, source) => source.filter(i => i === item).length >= 3)
Берик Омайбек
По факту те же 2 цикла, а понтов то... )))))
Евгений Орлов
let arr = [1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 5, 1, 4, 3, 3, 8, 7, 45, 45, 3, 45, 78];
arr = arr.filter((item, index, source) => source.filter(i => i === item).length >= 3);
arr = arr.filter((item, index, source) => source.filter(i => i === item).length >= 3);
Похожие вопросы
- напишите программу которая проверяет элементы массива на схожесть
- Программа по вычислению индекса элемента массива в джава
- Поиск элементов в двумерном массиве
- Заполнение массива случайными простыми числами в диапазоне от 2 до n
- Помогите избавиться от пустых значений в массиве.
- Как найти максимальное значение в массиве массивов?
- Программирование Джава. Написать код на упорядочивание массивов.
- вопрос про массивы
- Нужна помощь в массиве JavaScript
- Сравнение двухмерного массива