Js - решение задачи Range Sum Query - Неизменный с созданием объекта и его свойств
Я просматривал проблемы на сайте leetcode и увидел проблему, к которой я не знаю, как подойти. Вот как они это объясняют:
Для заданного целого числа nums найдите сумму элементов между индексами i и j (i ≤ j) включительно.
Пример: данные числа = [-2, 0, 3, -5, 2, -1]
sumRange (0, 2) -> 1 sumRange (2, 5) -> -1 sumRange (0, 5) -> -3 Примечание. Можно предположить, что массив не изменяется. Есть много вызовов функции sumRange.
И это код:
/**
* @param {number[]} nums
*/
var NumArray = function(nums) {
this.nums = nums;
};
/**
* @param {number} i
* @param {number} j
* @return {number}
*/
NumArray.prototype.sumRange = function(i, j) {
let sum = 0;
for (i; i <= j; i++) {
sum += this[i];
}
return sum;
};
/**
* Your NumArray object will be instantiated and called as such:
* var obj = Object.create(NumArray).createNew(nums)
* var param_1 = obj.sumRange(i,j)
*/
То, что я не знаю, как это сделать, или что именно это значит, это эта часть:
var obj = Object.create(NumArray).createNew(nums)
Предполагаю ли я создать свойство createNew, которое принимает мам, создателей и массив, и зачем мне это делать, если числа уже отправлены в виде массива?
1 ответ
что именно это означает, эта часть:
var obj = Object.create(NumArray).createNew(nums)
Они все испортили и имели ввиду просто var obj = new NumArray(nums)
(что все еще неоправданно сложно для функционального языка, такого как JS).
Очевидно, в какой-то момент описание было изменено кем-то невежественным, поскольку все старые представления JavaScript в разделе для обсуждения (например, в этом) содержат правильный код в комментарии.