
JavaScript
Разве сумму элементов массива таким способом (см) нельзя найти?

Какая нафиг это сумма, если вы даже значения массива не смотрите, а складываете индексы?
var arr, sum, i, tmp;
arr = [100, 200, 85];
// 1 вариант
sum = 0;
for (i = 0; i < arr.length; i += 1) {
tmp = parseFloat(arr[i]);
if (typeof tmp === 'number') { sum += tmp; }
}
document.write(sum + '<br />');
// 2 вариант
arr = [33, 67, 50];
sum = arr.reduce(function(a, b) { return a + b; });
document.write(sum + '<br />');
// 3 вариант
Array.prototype.sum = function () {
var i, s;
for (var i = 0, s = 0; i < this.length; i += 1) {
tmp = parseFloat(this[i]);
if (typeof tmp === 'number') { s += tmp; }
}
return s;
}
arr = [12, 13, 25];
sum = arr.sum();
document.write(sum + '<br />');
arr = [100, 200, 85];
// 1 вариант
sum = 0;
for (i = 0; i < arr.length; i += 1) {
tmp = parseFloat(arr[i]);
if (typeof tmp === 'number') { sum += tmp; }
}
document.write(sum + '<br />');
// 2 вариант
arr = [33, 67, 50];
sum = arr.reduce(function(a, b) { return a + b; });
document.write(sum + '<br />');
// 3 вариант
Array.prototype.sum = function () {
var i, s;
for (var i = 0, s = 0; i < this.length; i += 1) {
tmp = parseFloat(this[i]);
if (typeof tmp === 'number') { s += tmp; }
}
return s;
}
arr = [12, 13, 25];
sum = arr.sum();
document.write(sum + '<br />');
Массив из трех элементов. Что бы в нем ни было, сумма будет суммой последних значений i и j и всегда будет 2+3=5
Erlan Murzahanov
Похоже на то...
Erlan Murzahanov
Получается единственный способ такой?
var arr = [100, 200, 85];
var sum=0;
for(var i=0;i<arr.length;i++){
sum = sum + arr[i];
}
alert(sum);
var arr = [100, 200, 85];
var sum=0;
for(var i=0;i<arr.length;i++){
sum = sum + arr[i];
}
alert(sum);
Полный бред, я не знаю как это работает, если вообще работает
Erlan Murzahanov
Ну а как правильно будет искать сумму через два счетчика?
Нет начального значения суммы; сумма не инкриментиться, а только присваивается последнему вычесленному значению, в суммировании никак не участвует массив (только в пределах цикла).
многовато ; в скобках for
да и сумма так не считается
да и сумма так не считается
Не совсем понял, что нужно вычислить. В коде нет обращения к элементам массива arr.
Erlan Murzahanov
Виноват...
var arr = [100,200,85];
for (i = 0; j = 1; i < arr.length; i++, j++) {
summ = arr[i] + arr[j];
}
document.write(summ);
Но тоже не пашет
var arr = [100,200,85];
for (i = 0; j = 1; i < arr.length; i++, j++) {
summ = arr[i] + arr[j];
}
document.write(summ);
Но тоже не пашет
reduce для этого идеально подойдет
var arr = [100,200,85];
var sum = arr.reduce(function(a,b){return a+b});
document.write(sum)
var arr = [100,200,85];
var sum = arr.reduce(function(a,b){return a+b});
document.write(sum)
Кто это придумал?)
Похожие вопросы
- напишите программу которая проверяет элементы массива на схожесть
- Программа по вычислению индекса элемента массива в джава
- Поиск элементов в двумерном массиве
- Как найти максимальное значение в массиве массивов?
- Дан целочисленный массив размера N.Удалить из массива все элементы, встречающиеся менее трёх раз
- Как правильно найти наибольший и наименьший значения массива?
- Что не так делаю? Должно из импута элемент сверяться с элементом из массива а1
- Помогите избавиться от пустых значений в массиве.
- Как только с конца массива обрезать все пустые элементы? var arr = [0,,2,,,];
- Программирование Джава. Написать код на упорядочивание массивов.
Но так тоже не пашет
var arr = [100,200,85];
for (i = 0; j = 1; i < arr.length; i++, j++) {
summ = arr[i] + arr[j];
}
document.write(summ);