1

我需要使用来自方法的值构造和填充一个 json 对象。一些背景知识:我正在使用指定的关键字搜索 pdf 文档,如果找到任何匹配项,对于每个匹配项,我需要保存: - 找到匹配项的整个句子 - 搜索词(在其他地方定义:搜索词总是相同的,所以这里真的是多余的,但我可能需要它在 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;
    }

}

所以我需要构造一个 json 对象,在每次迭代时都接受上面讨论的参数:

那么,最好的方法是什么 - 我对 json 有点生疏了?我想我会从创建一个像这样的空对象开始(如果这甚至是一个有效的定义):

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

如果以上是正确的,我在哪里定义对象以及如何用相关值填充它?请记住,会有很多行、一个搜索词和很多结果,因为我将使用的文档(pdf)非常大,可以返回很多匹配项,谢谢

4

1 回答 1

0

说这样的话:

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

您已经定义了对象。JavaScript(此时)是原型,而不是基于“类”的语言。JavaScript 中的 JSON 不仅仅是一个普通的 JavaScript 对象。如果您想创建多个此类对象,您有多种选择。我建议您阅读有关 JS 对象创建模式的信息。

这是一个很好的链接

话虽这么说,你可以做这样的事情:

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

没有必要用空值初始化一些东西;您只需使用大括号创建对象。

希望这对您有意义;如果没有,请在评论中告诉我,我会努力改进我的答案。:-)

于 2016-11-17T14:30:18.580 回答