Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2020, 10:58
Новичок на форуме
Отправить личное сообщение для ddoss Посмотреть профиль Найти все сообщения от ddoss
 
Регистрация: 26.08.2020
Сообщений: 6

Как посчитать количество элементов в объекте по определенному условию?
{
developer_name0: 'Egor',
application_system0: 'Android',
developer_name1: 'Sasha',
application_system1: 'Android',
developer_name2: 'Egor',
application_system2: 'IOS',
developer_name3: 'Sasha',
application_system3: 'IOS',
developer_name4: 'Egor',
application_system4: 'Android',
developer_name5: 'Sasha',
application_system5: 'IOS',
developer_name6: 'Artur',
application_system6: 'Android',
}

или же массив обьектов

[{developer_name: 'Egor',
application_system: 'Android'},
{developer_name: 'Sasha',
application_system: 'Android'},
{developer_name: 'Egor',
application_system: 'IOS'},
{developer_name: 'Sasha',
application_system: 'IOS'},
{developer_name: 'Egor',
application_system: 'Android'},
{developer_name: 'Sasha',
application_system: 'IOS'},
{developer_name6: 'Artur',
application_system6: 'Android'}
]


Или же в виде массива
[ 'Egor',
'Android',
 'Sasha',
 'Android',
 'Egor',
 'IOS',
 'Sasha',
 'IOS',
 'Egor',
 'Android',
 'Sasha',
 'IOS',
 'Artur',
 'Android']



Имена могут быть разными, операционки нет.\

Ожидаемый результат

Egor: Android -2, IOS -1
Sasha: Android - 1, IOS - 2
Artur: Android - 1, IOS - 0

Последний раз редактировалось ddoss, 26.08.2020 в 11:12.
Ответить с цитированием
  #2 (permalink)  
Старый 26.08.2020, 11:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Самое неудачное, что можно придумать для связи сущностей, это именование ключей как name1, name2, ...
Ответить с цитированием
  #3 (permalink)  
Старый 26.08.2020, 11:08
Новичок на форуме
Отправить личное сообщение для ddoss Посмотреть профиль Найти все сообщения от ddoss
 
Регистрация: 26.08.2020
Сообщений: 6

Понимаю, поэтому массив дописал)
Ответить с цитированием
  #4 (permalink)  
Старый 26.08.2020, 11:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ddoss
Понимаю, поэтому массив дописал
А как в массиве понять какой элемент его связан с другим (ми)?
Ответить с цитированием
  #5 (permalink)  
Старый 26.08.2020, 11:13
Новичок на форуме
Отправить личное сообщение для ddoss Посмотреть профиль Найти все сообщения от ddoss
 
Регистрация: 26.08.2020
Сообщений: 6

первый со вторым, третий с четвертым, по парам
Ответить с цитированием
  #6 (permalink)  
Старый 26.08.2020, 11:14
Новичок на форуме
Отправить личное сообщение для ddoss Посмотреть профиль Найти все сообщения от ddoss
 
Регистрация: 26.08.2020
Сообщений: 6

Посмотрите еще на массив обьектов, мне кажется он вам приятнее всего будет
Ответить с цитированием
  #7 (permalink)  
Старый 26.08.2020, 11:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ddoss
первый со вторым, третий с четвертым, по парам
Уверены в этом? А если порядок в исходнике будет нарушен? Откуда такие данные и почему они не могут иметь структуру:

[
    {'Egor' : 'Android'},
    {'Sasha' : 'Android'},
     ....
]
//или
[
    {name: 'Egor', system: 'Android'},
    {name: 'Sasha', system: 'Android'},
     ....
]


И по какому признаку получилось - Egor: Android -2, IOS -1, как Egor связан с IOS в исходных данных?
Ответить с цитированием
  #8 (permalink)  
Старый 26.08.2020, 11:25
Новичок на форуме
Отправить личное сообщение для ddoss Посмотреть профиль Найти все сообщения от ddoss
 
Регистрация: 26.08.2020
Сообщений: 6

Можно и нарушить структуру если так легче решить задачу, например, в массиве обьектов - 3 обьект это {developer_name: 'Egor', application_system: 'IOS'} вот и связь)
Ответить с цитированием
  #9 (permalink)  
Старый 26.08.2020, 11:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ddoss
Можно и нарушить структуру
У вас мягко говоря и нет никакой вменяемой структуры, в этом и беда, а если нарушить ваш порядок, то это вообще хрен знает что и как решать.

Сообщение от ddoss
например, в массиве обьектов - 3 обьект это {developer_name: 'Egor', application_system: 'IOS'}
Что за бред. У вас прописано Егоров несколько, это один и тот же Егор или это разные ребятки? Если это один и тот же, то как скрипту это понять, потому что "первый со вторым, третий с четвертым ..."? А как же третий?

У вас в исходнике бардак, и если этот бардак с сервера пришел, то разбирайтесь на нем и отдавайте клиенту именно структурированные связанные данные, а не "кофейную гущу". Если это формируется на клиенте, то формируйте должным образом, дабы не перебирать все заново гадая что чему принадлежит.
Ответить с цитированием
  #10 (permalink)  
Старый 26.08.2020, 11:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ddoss,
<script>
let data = [{developer_name: 'Egor',
application_system: 'Android'},
{developer_name: 'Sasha',
application_system: 'Android'},
{developer_name: 'Egor',
application_system: 'IOS'},
{developer_name: 'Sasha',
application_system: 'IOS'},
{developer_name: 'Egor',
application_system: 'Android'},
{developer_name: 'Sasha',
application_system: 'IOS'},
{developer_name: 'Artur',
application_system: 'Android'}
];
const fn = data => {
let obj = {};
for(let {developer_name : a, application_system : b} of data) {
if(obj[a] === undefined) obj[a] = {};
if(obj[a][b] === undefined) obj[a][b] = 0;
obj[a][b]++;
}
return obj;
}
document.write(JSON.stringify(fn(data)))
  </script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество элементов массива Castromen Общие вопросы Javascript 0 22.03.2016 17:20
Как вывести количество скачиваний? ФаргатЪ Общие вопросы Javascript 0 28.03.2015 08:09
Как и где задать цикл? Blondinka Events/DOM/Window 2 10.06.2014 15:29
посчитать колличество элементов imediasun1 Элементы интерфейса 1 12.08.2013 16:57
как проверить наличие элементов в объекте? гвоздик Общие вопросы Javascript 4 30.10.2009 11:33