https://www.codewars.com/kata/sum-of-differences-in-array/train/javascript
мой способ решения:
function sumOfDifferences(arr) {
let arrR = arr.reverse();
let num = 0;
for(let i = 0; i < arrR.length; i++) {
if(i == arr.length-1){break}
num = num +(arrR[i]-arrR[i+1])
}
return num;
}
28 правильно, 80 не правильно, в чем собственно проблема?
https://www.codewars.com/kata/sum-of-differences-in-array/train/javascript
Your task is to sum the differences between consecutive pairs in the array in descending order.
For example: sumOfDifferences([1, 2, 10]
Returns 9
Descending order: [10, 2, 1]
Sum: (10 - 2) + (2 - 1) = 8 + 1 = 9
If the array is empty or the array has only one element the result should be 0
.
Ваша задача состоит в том, чтобы суммировать разницу между последовательными парами в массиве в порядке убывания.
например: sumOfDifferences([1, 2, 10]
вернёт 9
В порядке убывания: [10, 2, 1]
Сум: (10 - 2) + (2 - 1) = 8 + 1 = 9
Если массив пуст или массив имеет только один элемент, результат должен быть
0
.
arr.reverse();
недостаточно - ведь массив не всегда будет сортирован по возрастанию, так что нужно самому отсортировать
Если маленько подумать, то цикл не нужен - всё сократится, и достаточно вот чего:
function sumOfDifferences(arr) {
if (arr.length<2)
return 0;
arrS = arr.sort(function(a,b){return a-b;});
return arrS[arrS.length - 1] - arrS[0];
}
Или вообще без сортировки:
return Math.max.apply(null, arr) - Math.min.apply(null, arr);
Q: в чем собственно проблема?
A: в порядке убывания
решение
let sumOfDifferences = arr => arr.length < 2
? 0
: arr
.sort((a, b) => b - a)
.map((v, i, a) => (void 0 === a[i + 1]) ? 0 : v - a[i + 1])
.reduce((res, val, i, arr) => res + val, 0)
Очень простой код. Если длина массива меньше 2 — тоже работает.
function res (input) {
let result = 0
input.slice(1).forEach((item, i) =>
result += input[i] - item
)
return Math.abs(result)
}
console.log(res([1, 2, 10]))
console.log(res([5]))
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Бот отказывается считывать/изменять данные в MongoDB, хотя новые документы без проблем создаетhttps://gist
Подскажите,пожалуйста,как сделать чтоб вместо ${abbr} появился текст "css"?
Когда-то, где-то, читал про API, которое является аналогом documentcreateElement - не могу ни вспомнить название, ни найти, а гугл выдает тонны информации...