2017-12-07 10 views
2

私はleetcodeサイトの問題を克服しており、どのように接近するのか分からないという問題がありました。 、Js - 解決チャレンジ範囲のクエリ - オブジェクトとそのプロパティを作成することで不変です

指定された整数配列NUMSをiとj(私はJを≤)、包括的 インデックス間の要素の和を見つける:これは、彼らがそれを説明する方法です。

例:考えるNUMS = [-2、0、3、-5、2、-1]

sumRange(0、2) - > 1 sumRange(2、5) - > -1 sumRange( 0,5) - > -3注: 配列が変更されないことが考えられます。 sumRange関数の呼び出しが多数あります。

そして、これはコードです:私は仮定

var obj = Object.create(NumArray).createNew(nums) 

アム:私は方法がわからない何

/** 
* @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) 
*/ 

がある、またはまさにその意味では、この部分ですmumとcreatとarrayをとるプロパティcreateNewを作成します。なぜnumがすでに配列として送られているのですか?まさにそれが何を意味するのか

+0

私の推測では、それらは混乱し、 'var obj = new NumArray(nums)'を意味していたと思います。 – Bergi

+0

このコードに添付されている練習の完全な目的を述べることができますか? –

+0

タスクの説明を追加しました – Leff

答えて

1

はこの部分である:

var obj = Object.create(NumArray).createNew(nums) 

は、彼らがそれを台無しにし、意味だけで(まだ不必要なJSのような関数型言語のために複雑になっている)var obj = new NumArray(nums)

ディスカッションセクションの古いJavaScriptの投稿(例:this one)のコメントには、正しいコードが含まれているため、説明が間違っていることがありました。

+0

ありがとうございます。 – Leff

関連する問題