Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

найти количество повторяющихся элементов в массиве

#javascript


найти количество повторяющихся элементов в массиве  (ответ 8)

вот наброски  




если можно,то поправьте мои записи
    


Ответы

Ответ 1



Классический способ function calc(a) { var count={}, res=0, q; for (q=0; q 1) { res += count[q]; } } return res; } calc([1,11,13,121,13,11,11,11,7,9,9]) // 8 ES6 function calc(a) { let count = Object.create(null); for (let x of a) { count[x] = ~~count[x] + 1; } return a.length - Object.keys(count).filter(x => count[x]>1).length; } calc([1,11,13,121,13,11,11,11,7,9,9]) // 8 PS: Допускаю, что на ES6 можно ещё что-то переписать.

Ответ 2



У меня так получилось function countDoubles(list) { var items = list.slice(0), // клонируем исходный массив tested = [], // список проверенных элементов item, // один элемент count = 0; // кол-во элементов, имеющх дубли while (items.length) { // вырезаем первый элемент (что бы он нам больше не попадался) item = items.shift(); // если его еще не проверяли if (tested.indexOf(item) === -1) { // добавляем в список tested.push(item); // и ищем дубли if (items.indexOf(item) >= 0) { count++; } } } return count; } countDoubles([1, 1, 2, 2, 3, 3, 4, 5, 3, 0, 0, 0]) // 4 countDoubles([1,11,13,121,13,11,11,11,7,9,9]) // 3

Ответ 3



Есть такая классная библиотека linqjs. Enumerable.From([1,11,13,121,13,11,11,11,7,9,9]).Distinct().ToArray() Вернет уникальные знания. Кроме этого есть куча других полезности. Ссылка http://neue.cc/reference.htm lodash/underscore _.uniq([1,11,13,121,13,11,11,11,7,9,9]) Получаешь уникальные значения. Также очень много плюшек, такие как проверка, работа с массивами. Если ты не уверен в своих знаниях, используй фреймворки, там уже за тебя все сделали. Удачи!

Ответ 4



если у тебя 2 массива, то можно так попробовать: function matchArrays(v, r){ var count = []; for (var i =0; i

Комментариев нет:

Отправить комментарий