2016-11-17 67 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