It-юмор

It-юмор
Вы смотрите срез комментариев. Показать все
117
Автор поста оценил этот комментарий

9$9$

раскрыть ветку (42)
30
Автор поста оценил этот комментарий
var price = '';
var currency ='$';
For(var i = 0; i < books.length; i++){
price = price + books[I].price + currency;
}
console.log(price);
раскрыть ветку (38)
80
Автор поста оценил этот комментарий
Ничего не понял, так как гуманитарий, но поржал, типа умный и понял
раскрыть ветку (9)
16
Автор поста оценил этот комментарий
Схожее чувство, когда не особо догоняешь смысл узкопрофильной шутки, но когда рассказываешь её в компании людей, которые в этом шарят. Все вокруг начинают с неё ржать, а ты такой типо Хэх, ну типо я в теме, да.
раскрыть ветку (3)
19
DELETED
Автор поста оценил этот комментарий

А на самом деле ржут с тебя...

2
Автор поста оценил этот комментарий
зачем рассказывать шутку, которую не понимаешь? 🤔
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Потому, что всегда её понимали люди "втеме"
3
Автор поста оценил этот комментарий
Там внизу в комментах вообще маги(программисты) собрались и общаются на своем эльфийском языке,хрен разберешь
6
DELETED
Автор поста оценил этот комментарий

Чтоб понять эту шутку достаточно максимум час  потратить на изучение JS, сразу видно что писал начинающий.

1
Автор поста оценил этот комментарий

На самом деле, глядя на этот код - не смеяться, а плакать надо

1
Автор поста оценил этот комментарий
Попыталась написать кусок кода, который выводил бы '9$9$' :))
Автор поста оценил этот комментарий
Я тоже нихуя не понял, если честно, почему price равен одной ковычке, откуда берется длина books, если books до этого не объявлен нигде, почему for с большой буквы
15
Автор поста оценил этот комментарий

books.map(book => {
  price += book.price + currency;
});
так покороче будет )

раскрыть ветку (20)
7
Автор поста оценил этот комментарий
for быстрее работает, чем мап или форич. И если уж выбирать из встроенных методов массива, то тут редьюс.
books.reduce((total, book) => {
return total + book.price
}, '')
раскрыть ветку (12)
4
Автор поста оценил этот комментарий

в функции-стрелке не нужен return в данном случае :)

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Тогда и фигурные скобки опустить нужно. Не люблю колбэк у редьюса без фигурных скобок из-за инициализации аккумулятора после него.
1
Автор поста оценил этот комментарий

books.reduce((result,{price})=>result+price,0)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Когда я спорил с Реактом?) Реакт - наше все!

Автор поста оценил этот комментарий

Спасибо, я уж было надежду потерял совсем...
Только можно было ещё обойтись без скобок и ретурна, а вторым аргументом было бы неплохо инициализировать аккумулятор, ибо иначе вместо него встанет первый элемент массива, а сам цикл начнётся со второго, а так пойдёт с первого:


books.reduce((total, book) => total + book.price, 0) + currency // '123$'

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
В моём сообщении аккумулятор инициализирован(''). В твоём случае, он посчитает как надо. Мы же говорим о случае, когда нужно чтобы прайсы слепились как строки, а не числа. Для этого аккумулятор инициализирован пустой строкой.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ааааа, ну тогда да, всё верно)))

Автор поста оценил этот комментарий

map reduce хватает за глаза, я себе плохо представляю ситуацию где фронту требуется сделать перебор 500 000 элементов.


для супер сложный вычеслений есть wasm уже


const data = new Array(300000).fill(null).map((item)=>({data:Math.random()}));

меньше секунды будет

Автор поста оценил этот комментарий

щас затестил интересное поведение:
const curr = "$";
let price = "";
let books = [{price: "3"}, {price: "5"}, {price: "33"}]
price += books.map(book => (book.price + curr))
price будет равен "3$,5$,33$" именно с запятыми )

раскрыть ветку (3)
2
DELETED
Автор поста оценил этот комментарий
map возвращает массив
Автор поста оценил этот комментарий
складывай значения во внешнюю переменную
const curr = "$";
let price = "";
let books = [{price: "3"}, {price: "5"}, {price: "33"}]

books.map(book => {
price+=book.price + curr
})
console.log(price)
а вообще уже писали, что для этого больше reduce подходит
Автор поста оценил этот комментарий
Array.toString()
1
Автор поста оценил этот комментарий
Спасибо:) я ещё учусь на скрипте писать
3
Автор поста оценил этот комментарий
forEach предпочтительнее
раскрыть ветку (3)
Автор поста оценил этот комментарий

нет

Автор поста оценил этот комментарий

в данном примере map гораздо лаконичнее выглядит, а еще forEach очень-очень медленный и его не рекомендуют использовать.

https://coderwall.com/p/kvzbpa/don-t-use-array-foreach-use-f...

раскрыть ветку (1)
Автор поста оценил этот комментарий
По ссылке сравнивают forEach с for loop. Что вы понимаете под словом "лаконичность"? У каждого подхода есть свой кейс - map мы используем при преобразовании массива, получении нового массива.

В примере же, мы просто используем каждый элемент массива в общей операции - юзаем forEach, чтобы было более выразительно и понятно.

Но конечно, best choice - reduce.

books.reduce((a,b) => a + b.price + currency)
Автор поста оценил этот комментарий

еще return нужен

раскрыть ветку (1)
Автор поста оценил этот комментарий

return не нужен, так как результат map нигде не используется (map можно заменить на forEach).

3
Автор поста оценил этот комментарий

у вас ошибка в 3 строке - for пишется с маленькой буквы.

И что ж вы на es2015+ не пишите?)

А еще есть прекрасное += вместо a = a + b можно легко написать a += b
5
Автор поста оценил этот комментарий
Ошибочка. В цикле books[l], а должно быть books[i].
раскрыть ветку (4)
Автор поста оценил этот комментарий
На телефоне набиралось:) он все менял i на I
1
Автор поста оценил этот комментарий

Там i в верхнем регистре, это видно невооружённым взглядом.

раскрыть ветку (2)
3
Автор поста оценил этот комментарий
Но ведь js регистрозависимый. И переменные I и i разные.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Я не утверждал обратного, лишь обратил внимание на то, что l там вовсе не l.

1
Автор поста оценил этот комментарий
Ну все пропал дом...погроммистов на js подвезли.
7
Автор поста оценил этот комментарий
Знак доллара обычно впереди стоит, так что '$9$9')
2
Автор поста оценил этот комментарий

parseInt('9$') + parseInt('9$')

Автор поста оценил этот комментарий

5 книг я покупать конечно не буду.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку