我需要使用来自方法的值构造和填充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)非常大并且可以返回大量匹配 感谢
答案 0 :(得分:0)
说出类似的话:
var searchResult = {"Line" : "", "SearchTerm" : "", "Result" : ""}
您已经定义了该对象。 JavaScript(此时)是典型的,不是&#34;类&#34;基于语言。 JavaScript中的JSON不仅仅是一个简单的JavaScript对象。如果要创建多种此类对象,可以使用各种选项。我建议你阅读有关JS Object创建模式的内容。
这是a good link。
话虽如此,你可以这样做:
// ... maybe inside a function
return {
line: myLineValue,
searchTerm: mySearchtermValue,
result: myResult
}
无需使用空值初始化;你只需用大括号创建对象。
希望这对你有意义;如果没有,请在评论中告诉我,我会尽力改进我的答案。 : - )