Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вообще ничего не понял в этом коде... (https://javascript.ru/forum/misc/79917-voobshhe-nichego-ne-ponyal-v-ehtom-kode.html)

jaroslav.tavgen 12.04.2020 13:50

Цитата:

Сообщение от рони (Сообщение 522694)
направление правильное, но куда делись строки 1 и 4 из задания?

const fn = (a,b)=>a+b;
const a = [1,2,3];
const b = [4,5,6];
Array.prototype.sum = function(...args){ return this.reduce(fn) + args[0].reduce(fn)};

console.log(a.sum(b))//21

рони 12.04.2020 13:56

jaroslav.tavgen,
а можно без использования знака +(везде) а fn применить только в строке 6 :)

рони 12.04.2020 14:01

jaroslav.tavgen,
хочется сделать более полноценный вариант вашего кода из первого сообщения не слишком изменяя его.

jaroslav.tavgen 12.04.2020 14:22

Цитата:

Сообщение от рони (Сообщение 522696)
jaroslav.tavgen,
а можно без использования знака +(везде) а fn применить только в строке 6 :)

Честно говоря, не понимаю, как без знака + найти сумму, используя reduce. Можно использовать хак с двумя минусами :D ,но явно не это имелось в виду.

рони 12.04.2020 14:25

jaroslav.tavgen,
const fn = (a,b)=>a+b;
const a = [1,2,3];
const b = [4,5,6];
Array.prototype.sum = function(...args){ return this.reduce(...args)};

console.log(a.sum(fn, b.sum(fn)))//21

SuperZen 12.04.2020 14:26

const fn = (a, b) => a + b;
const a = [1, 2, 3];
const b = [4, 5, 6];
Array.prototype.sum = function (...args) {
  return this.reduce(...args);
};
console.log([a, b].map(v => v.sum(fn)).sum(fn, 100));

тоже поучаствую )

рони 12.04.2020 14:34

SuperZen,
:victory:

voraa 12.04.2020 14:42

const fn = (a,b)=>a+b;
const a = [1,2,3];
const b = [4,5,6];
Array.prototype.sum = function(){ return this.reduce(fn)};
 
console.log(fn(a.sum(), b.sum())) //21

рони 12.04.2020 14:59

voraa,
:)

Nexus 12.04.2020 16:31

Вроде такого еще не было:
const fn = (a,b)=>a+b;
const a = [1,2,3];
const b = [4,5,6];
Array.prototype.sum = function() { return this.reduce(...arguments); };
 
console.log([...a, ...b].sum(fn)) //21


Часовой пояс GMT +3, время: 18:42.