2016-11-17 75 views
0

我需要使用來自方法的值構造和填充json對象。 有點背景:我正在用指定的關鍵字搜索pdf文檔,如果找到任何匹配,我需要保存的每個匹配: - 發現匹配的整個句子 - 搜索項(已定義在其他地方:搜索詞總是相同的,所以它在這裏真的是多餘的,但我可能需要它在json對象中,這就是爲什麼我要包含它) - 結果(這是搜索詞在整個句子,它應該是一個整數) 所以,這裏是一些代碼。 我有一個循環中調用該函數(環路穿過頁面,然後有第二個循環,通過文雲):創建和填充json對象

for(var i = 0; i < items.length; i++){ 
    lineWithResult = searchPdf(block.str); 
    if(lineWithResult != null){ 
     console.log(lineWithResult + " wordCounter is " + wordCounter); 
    } 
} 

和本身的功能:

function searchPdf(toSearch){ 
    var result = toSearch.toLowerCase().indexOf(searchTerm); 
    if(result >=0){//if match is found 
     wordCounter++; 
     //console.log("toSearch " + toSearch + " result is " + result + " wordCounter " + wordCounter); 
     return toSearch; 
    } 
    else{//if match not found 
     return null; 
    } 

} 

SO我需要構建一個json對象,它在每次迭代中都需要上面討論的參數:

那麼,什麼是最好的方法 - 我用json有點生疏? 我想我會創建一個空的對象,像這樣(如果這甚至是有效的定義)開始:

var searchResult = {"Line" : "", "SearchTerm" : "", "Result" : ""} 

如果以上是正確的,我在哪裏定義對象,如何填補它與相關的價值?請記住,會有很多行,一個搜索詞和很多結果,因爲我將使用的文檔(pdf)非常大,並且可能會返回大量匹配結果 謝謝

回答

0

說到類似的東西即:

var searchResult = {"Line" : "", "SearchTerm" : "", "Result" : ""} 

您已經定義了該對象。 JavaScript(在這一點上)是原型的,而不是「基於類」的語言。 JavaScript中的JSON不僅僅是一個普通的JavaScript對象。如果你想創建多種這樣的對象,你有不同的選擇。我建議你閱讀關於JS Object創作模式。

這裏是a good link

話雖這麼說,你可以做這樣的事情:

// ... maybe inside a function 
return { 
    line: myLineValue, 
    searchTerm: mySearchtermValue, 
    result: myResult 
} 

沒有必要初始化與空值的東西;你只需用大括號創建對象。

希望這對你有意義;如果沒有,請在評論中告訴我,我會盡力改進我的答案。 :-)

+0

它確實感謝,但我最終使用了一個正常的對象數組,謝謝! – antobbo