2016-11-17 4 views
0

Мне нужно построить и заполнить объект json со значениями, исходящими из метода. Немного фона для этого: я ищу документы в формате PDF с указанным ключевым словом, и если найду какое-либо совпадение, для каждого матча мне нужно сохранить: - все предложение, в котором встречается совпадение - поисковый запрос (определенный в другом месте: термин поиска всегда один и тот же, поэтому он действительно избыточен здесь, но мне может понадобиться его в объекте json, поэтому я его включаю) -result (который является индексом, в котором поисковый запрос найден в целое предложение, и оно должно быть целым числом) Итак, вот какой-то код. У меня есть вызов этой функции внутри цикла (петля проходит через страницу, а затем есть второй цикл, который проходит по тексту):Создание и заполнение объекта 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 (на данный момент) является прототипом, а не «классом». JSON в JavaScript не намного больше, чем просто простой объект JavaScript. Если вы хотите создать несколько объектов такого типа, у вас есть различные варианты. Я рекомендую вам прочитать о шаблонах создания JS Object.

Адрес a good link.

Это, как говорится, вы могли бы сделать что-то подобное:

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

Там нет необходимости инициализировать что-то с пустыми значениями; вы просто создаете объект с фигурными скобками.

Надеюсь, это имеет смысл для вас; если нет, сообщите мне в комментариях, и я постараюсь улучшить свой ответ. :-)

+0

это действительно спасибо, но в итоге я использовал обычный массив объектов, спасибо! – antobbo

Смежные вопросы