Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.02.2023, 10:02
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Сообщение от Сергей Ракипов Посмотреть сообщение
рони,
вот это что вы написали (a[0], 0) как я понял а это массив [0] это индекс массив а через запятую 0 это что?
Разве в документации что-то непонятно написано? - https://developer.mozilla.org/ru/doc...ts/Array/every

["a", "b", "c", "d"].every(
 (el, ind, arr) => {
    console.log("el=" + el, "ind=" + ind, "arr=" + arr);
    return true;
 }
);

Последний раз редактировалось Белый шум, 02.02.2023 в 18:09.
Ответить с цитированием
  #12 (permalink)  
Старый 02.02.2023, 21:21
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от рони Посмотреть сообщение
и берёте жильца по номеру квартиры

Это я исходя из того что код работает понял что и беру жильца, просто для меня это не логично. Просто придется запомнить что это работает так.

читать тут
про как указать номер массива я знаю
Ответить с цитированием
  #13 (permalink)  
Старый 02.02.2023, 21:59
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от Белый шум Посмотреть сообщение
Разве в документации что-то непонятно написано? - https://developer.mozilla.org/ru/doc...ts/Array/every

["a", "b", "c", "d"].every(
 (el, ind, arr) => {
    console.log("el=" + el, "ind=" + ind, "arr=" + arr);
    return true;
 }
);
К описанию у меня нет вопросов, я уже сдался это не так важно, просто я по другому не могу объяснить как я воспринимаю логику этого кода. Мне проще запомнить что это работает так и все.

Если только JS думает так есть массив иду по индексам, смотрю что находится в этом индексе, "запомнил" беру следующий массив иди по индексам и уже после этого сравниваю что находится в этом индексе.

В коде то просто написано 1 как значение сравни с 0 как с положением массива.
Ответить с цитированием
  #14 (permalink)  
Старый 02.02.2023, 22:09
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

Сообщение от Сергей Ракипов
В коде то просто написано 1 как значение сравни с 0 как с положением массива.
В коде написано
Сообщение от Сергей Ракипов
el === secondArray[ind]
el - значение из первого массива, secondArray[ind] - значение по индексу ind из второго массива
ind - индекс
secondArray[ind] - значение по этому индексу
Ответить с цитированием
  #15 (permalink)  
Старый 02.02.2023, 22:57
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Спасибо что помогаете разобраться.
Ответить с цитированием
  #16 (permalink)  
Старый 03.02.2023, 06:31
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Сообщение от Сергей Ракипов Посмотреть сообщение
Если только JS думает так есть массив иду по индексам, смотрю что находится в этом индексе, "запомнил" беру следующий массив иди по индексам и уже после этого сравниваю что находится в этом индексе.
По индексам массива идёт только функция every:
Код:
firstArray.every( )
И только по индексам одного массива - того, который указан перед ней через точку. Т.е. в данном случае она идёт по индексам массива firstArray.

И когда она проходит по индексам этого массива, она запускает для каждого его элемента функцию, которую ей передали в качестве параметра. В вашем случае это стрелочная функция:
Код:
(el, ind) => el === secondArray[ind]
где (el, ind) - это параметры данной функции. Значения в эти параметры передаёт every (при каждом запуске этой стрелочной функции значения будут разными).

Вот и вся логика. По индексам второго массива никто не проходит.
Ответить с цитированием
  #17 (permalink)  
Старый 03.02.2023, 08:33
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Цитата:
И вот из первого дома я имею жильца 1 А из второго дома я беру номер квартиры
В этом утверждении содержится логическая ошибка которая приводит к ошибочным выводам.
С точки зрения формальной логики это нарушение третьего закона логики "Исключенный третий" т.е. понятие "беру номер квартиры" не верно и не может использоваться в логическом рассуждении потому что фактически используется синтаксическая конструкция которая представлена выражением и уже в этом выражении используется так называемое "беру номер квартиры" как часть этого выражения возвращающего жильца.
Т.е. вместо целого используемого выражения в логике используется только его часть это и есть то самое "подмена понятия".
Ответить с цитированием
  #18 (permalink)  
Старый 03.02.2023, 11:49
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

На самом деле это надо читать так
И вот из первого дома я имею жильца 1. А из второго дома я беру номер квартиры
Ответить с цитированием
  #19 (permalink)  
Старый 04.02.2023, 04:06
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Сообщение от MallSerg Посмотреть сообщение
С точки зрения формальной логики это нарушение третьего закона логики "[url="https://www.google.com/search?q=%D0%98%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B 5%D0%BD%D0%BD%D1%8B%D0%B9+%D1%82%D1%80%D0%B5%D1%82 %D0%B8%D0%B9&sourceid=chrome&ie=UTF-8"].
спасибо почитал
Ответить с цитированием
  #20 (permalink)  
Старый 04.02.2023, 04:48
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 651

Скажу сразу код работает просто не до конца понимаю.

const inputProducts = [
  {
    title: 'Phone case',
    price: 23,
    quantity: 2,
    category: 'Accessories',
  },
  {
    title: 'Android phone',
    price: 150,
    quantity: 1,
    category: 'Phones',
  },
  {
    title: 'Headphones',
    price: 78,
    quantity: 1,
    category: 'Accessories',
  },
  {
    title: 'Sport Watch',
    price: 55,
    quantity: 2,
    category: 'Watches',
  },
]

const quantitiesByCategories = (products) => {

  return products.reduce((qtyByCategories, product) => {

    const {category, quantity} = product

    qtyByCategories[product.category] =  (qtyByCategories[product.category] || 0) + product.quantity

    return qtyByCategories
    
  }, [])
}  

console.log(quantitiesByCategories(inputProducts))


1) Как вот этот параметр product понял что он будет объектом этого массива inputProducts

2) Почему [product.category] решило что она возьмет значение этого свойства category: 'Accessories' и станет ключом нового объекта

3) Как происходит суммирование quantity за счет этой записи (qtyByCategories[product.category] || 0) + product.quantity

Последний раз редактировалось Сергей Ракипов, 04.02.2023 в 05:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28