Как найти количество элементов в массиве
Перейти к содержимому

Как найти количество элементов в массиве

  • автор:

Количество элементов массива + всех массивов внутри массива

Каким способом можно посчитать количество элементов [1, 2, [3, 4, [5]]], чтобы получилось семь. Другой пример: [[[[[[[[[]]]]]]]]] — должно получиться восемь. Я сегодня провёл примерно три часа, но так ничего и не добился.

function deepCount (a) < let count = 0 count = count + a.length function inside (o) < return o.length >for (i in a) < if (typeof a[i] === 'object') < count = count + inside(a[i]) >> console.log(count) > deepCount([1, 2, [3, 4, [5]]]) 

Вот всё, чего я достиг. Выдаёт шесть, но я не понимаю, как сделать рекурсию функции на саму себя, чтобы бесконечно проверяло, сколько массивов внутри.

Отслеживать
задан 17 сен 2022 в 14:02

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Можно рекурсивно. Проверять является ли элемент массива массивом и если да, то передавать этот элемент аргументом. Если нет увеличивать счетчик.

let m = [1, 2, [3, 4, [5]]]; let count = 0; function recursion(m) < for (const elem of m) < if (Array.isArray(elem)) < count++; recursion(elem); >else < count++ >> return count > console.log(recursion(m))

Отслеживать
ответ дан 17 сен 2022 в 14:19
2,500 2 2 золотых знака 7 7 серебряных знаков 17 17 бронзовых знаков
Функция recursion работает правильно один раз.
17 сен 2022 в 20:12
@StanislavVolodarskiy Затупил) Потому, что надо спать и высыпаться.
18 сен 2022 в 7:06

deepCount устроена так: в счётчик помещается длина массива. Затем перебираются элементы массива. Если какой-то из них тоже массив, к счётчику добавляется результат рекурсивного вызова deepCount :

const deepCount = a => < let c = a.length; for (const v of a) < if (Array.isArray(v)) < c += deepCount(v); >> return c; >; console.log(deepCount([1, 2, [3, 4, [5]]])); console.log(deepCount([[[[[[[[[]]]]]]]]]));

Отслеживать
ответ дан 17 сен 2022 в 20:21
Stanislav Volodarskiy Stanislav Volodarskiy
34k 3 3 золотых знака 20 20 серебряных знаков 56 56 бронзовых знаков

  • javascript
  • массивы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420

Как узнать количество элементов в массиве js

Кроме стандартного свойства length, есть еще способ, как узнать количество элементов массива.
Данный метод будет удобен, если вы работаете в консоли браузера.

const numbers = [1, 2, 3, 4, 5]; //объявляем массив console.log(numbers); //выводим массив в консоль браузера. 
(5) [1, 2, 3, 4, 5] 0: 1 1: 2 2: 3 3: 4 4: 5 length: 5 

Данный пример демонстрирует дополнительные возможности браузера, он предназначен для быстрой проверки. В каждом браузере это может выглядеть по-разному.
Как определять количество элементов массива, решать только вам.

Как посчитать количество элементов в массиве?

BacCM

Но лучше std::array использовать вообще. У него есть метод size.

Ответ написан более трёх лет назад
Нравится 2 3 комментария

BacCM

Правда так же требуется вся информация о типе массива, но в отличии от моего варианта, не скомпилируется при отсутствии этой информации. Что большой плюс.
Правда промышленная разработка на C++17 это пока только мечты. Мне бы мои легаси проекты заволочь хотя бы на 11

Vitaly @vt4a2h Куратор тега C++

Василий Мельников, ну второй вариант требует только 11го стандарта, насколько мне известно. std::array (который я и рекомендую использовать в данном случае) тоже только 11го стандарта требует.

Касательно C++17, многие компании, в том числе и наша, его уже давно используют. Два года прошло с утверждения как никак. Да и все популярные компиляторы его поддерживают.

JavaScript: определяем количество элементов в объекте

В этой статье мы поговорим, как определить число элементов в JavaScript-объекте. Заодно посмотрим, как определяют количество элементов в массиве. И, разумеется, приведём практические примеры.

Как известно, люди нередко ищут сложные пути для решения достаточно простых задач. Так и здесь: определить количество элементов в массиве или объекте, по сути, несложно. Об этом и поговорим.

Итак, давайте представим, что у нас есть объект:

 
var myObject = new Object(); myObject["firstname"] = "Лев"; // Имя myObject["lastname"] = "Толстой"; // Фамилия myObject["age"] = 21; // Возраст 

И возникает закономерный вопрос: каким образом лучше рассчитать величину объекта, то есть количество входящих в него элементов? Смотрите, если подсчёт будет осуществляться в современных браузерах, то самый простой способ — следующий:

 
var size = Object.keys(myObject).length; 

Если же вам нужно обеспечить поддержку старых браузеров, может, пригодится и немного другой вариант:

 
// Функция, определяющая величину объекта Object.size = function(obj)  var size = 0, key; for (key in obj)  if (obj.hasOwnProperty(key)) size++; > return size; >; // В переменной size будет содержаться количество элементов объекта var size = Object.size(myObject); 

В принципе, ничего сложного нет. Давайте закрепим этот небольшой урок: 1. Если надо определить число элементов в массиве JavaScript:

 
//Определяем массив var arr = ["elem_1", "elem_2", "elem_3", "elem_4", "elem_5"]; //Узнаём число элементов массива, применяем к нему свойство length var countElementsArr = arr.length; //Распечатываем результат в консоль console.log(countElementsArr); 

2. Если надо определить число элементов в объекте JavaScript:

 
//Определяем объект var obj = "first_name": "Ivan", "last_name": "Ivanov", "city": "Ivanovo", "country": "Russia">; //Узнаём число элементов объекта var countElementsObj = Object.keys(obj).length; //Распечатываем результат в консоль console.log(countElementsObj); 
  • https://wordpressrus.ru/javascript/javascript-opredelenie-razmera-massiva-i-obekta.html
  • https://wppw.ru/vo/kak-opredelit-kolichestvo-elementov-v-obekte-javascript

Если же интересуют не базовые знания, а действительно продвинутые навыки по разработке на JavaScript, записывайтесь на наши курсы:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *