1
I have an array containing 16 objects, each object has the title, and definition attributes. I need to put inside each object in the definition attribute,.
[{
titulo: universo,
definicao:["(Física) a totalidade da matéria e da energia existentes no espaço e no tempo, tudo o que existe, o todo"],
["todas as possibilidades em uma dada situação"]}]
That at all positions of my array that contains the objects, to do so, I identified a pattern where contains the data of the definitions,
e.lists[0].forEach(function(a,b){
// console.log(e.lists[0][b].text);
if(e.lists[0][b].text.match(/(^[0-9]{1,}\))|\#\s/)){
definicoes.push(e.lists[0][b].text);
}
});
But I couldn’t create a logic in which to input the data in a way that would look something like:
[{
titulo:'titulo1'
definicao:['definicoes do titulo 1']},
{
titulo:'titulo2'
definicao:['definicoes do titulo 2']},
{
titulo:'titulo3'
definicao:['definicoes do titulo 3']},
{
titulo:'titulo4'
definicao:['definicoes do titulo 4']}]
Follow the full code
var fs = require("fs");
var parser = require("fast-xml-parser");
var wtf = require("wtf_wikipedia");
var textos = [];
var objetos = [];
var titulos = [];
var definicoes = [];
fs.readFile("wiktionary.part_11.xml",function(erro,xml){
var ob = parser.getTraversalObj(xml);
var json = parser.convertToJson(ob);
// console.log(json.mediawiki.page[1].title);
json.mediawiki.page.forEach(function(v,i){
textos[i] = wtf(v.revision.text).json();
titulos[i] = v.title;
});
textos.forEach(function(elem,indice){
objetos[indice] = {};
elem.sections.forEach(function(e,i){
if(e.hasOwnProperty('paragraphs')){
e.paragraphs.forEach(function(ele,ind){
//console.log(ele,indice);
ele.sentences.forEach(function(d,info){
if(d.text.match(/(\# \w{2,})|(\[0-9]{1,})|(, \#)\) /i)){
console.log(d.text);
}
});
});
}if(e.hasOwnProperty('templates')){
//console.log(textos[indice].sections[i].templates," templates",indice);
}if(e.hasOwnProperty('lists')){
e.lists[0].forEach(function(a,b){
// console.log(e.lists[0][b].text);
if(e.lists[0][b].text.match(/(^[0-9]{1,}\))|\#\s/)){
definicoes.push(e.lists[0][b].text);
}
});
}
});
});
objetos.forEach(function(ele,ind){
ele[ind] = [];
ele[ind].titulo = titulos[ind];
ele[ind].definicao = [];
});
console.log(definicoes);
});