Автоматическая дата/время записи MSSQL удаляет

Из документации Array.reduce () :

Функция редуктора принимает четыре аргумента:

  • Аккумулятор (акк)
  • Current Value (cur)
  • Current Index (idx)
  • Source Array (src)

Возвращаемое значение функции редуктора присваивается аккумулятору, чье значение запоминается на каждой итерации по всему массиву и в конечном итоге становится окончательным единственным полученным значением.

blockquote>

Итак, я думаю, что вы хотели сделать это вместо этого:

var arr = [
  { name: "A", quantity: 1, price: 20 },
  { name: "B", quantity: 2, price: 40 },
  { name: "C", quantity: 3, price: 60 },
  { name: "D", quantity: 4, price: 80 }
];

var test = arr.reduce(function(acc, curr)
{
    return acc + (curr.quantity * curr.price);
}, 0);

console.log(test);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

Примечание, всегда полезно явно определить начальное значение аккумулятора (в данном случае 0). Даже если это необязательно, в этом случае работать не будет:

initialValue Необязательно: значение, используемое в качестве первого аргумента для первого вызова обратного вызова. Если начальное значение не указано, будет использован первый элемент в массиве. Вызов метода Reduce () для пустого массива без начального значения является ошибкой.

blockquote>

Почему вы получаете NaN?

Поскольку вы явно не определяете начальное значение аккумулятора, это будет первый объект в массиве: [1129 ]

{name: "A", quantity: 1, price: 20}

Теперь первая итерация reduce() будет работать, потому что аккумулятор (в вашем примере он называется item1) является объектом и имеет свойства quantity и price. Более того, эта итерация вернет 1 * 20 + 2 * 40 = 100, и это будет новое значение аккумулятора (item1). Теперь вторая и последующие итерации reduce() не будут работать так, как вы ожидаете, потому что новое значение аккумулятора (после первой итерации) не является объектом и не будет иметь свойств quantity и price. Итак, эта последняя проблема приведет к получению NaN в качестве окончательного значения.

12
задан Sam 10 August 2014 в 10:24
поделиться

1 ответ

SQL Server Agent может сделать это для Вас.

Просто создайте задание с регулярным графиком и SQL, который Вы хотите выполнить. Существует простой в использовании интерфейс мастера для создания рабочих мест.

10
ответ дан 2 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: