Create an Array of Objects for Patch Notes in React












1














I was looking to get some reviews of my code, so I can improve my writing. Functionally it works the exact way I want it to based on my patch notes .md file. I'm open to all suggestions for improving the code, especially in making it more performant.






	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}








### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes












share|improve this question









New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Could you edit with an example markdown file you would be using?
    – ByteSettlement
    Jan 2 at 22:00










  • Added an example .MD file.
    – Hamburguesa
    Jan 3 at 1:25
















1














I was looking to get some reviews of my code, so I can improve my writing. Functionally it works the exact way I want it to based on my patch notes .md file. I'm open to all suggestions for improving the code, especially in making it more performant.






	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}








### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes












share|improve this question









New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Could you edit with an example markdown file you would be using?
    – ByteSettlement
    Jan 2 at 22:00










  • Added an example .MD file.
    – Hamburguesa
    Jan 3 at 1:25














1












1








1







I was looking to get some reviews of my code, so I can improve my writing. Functionally it works the exact way I want it to based on my patch notes .md file. I'm open to all suggestions for improving the code, especially in making it more performant.






	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}








### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes












share|improve this question









New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I was looking to get some reviews of my code, so I can improve my writing. Functionally it works the exact way I want it to based on my patch notes .md file. I'm open to all suggestions for improving the code, especially in making it more performant.






	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}








### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes








	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}





	state = {
open: false,
notes: null
}

componentDidMount() {
this.getData();
}

getData = () => {
axios.get(patchnotes_md_urlpath)
.then((response) => {
const updates = response.data.replace(/(rn|n|r)/g, '').split('### ');
let i;
let j;
let notes = ;
for ( i = 1; i < updates.length; i++ ) {
let update = updates[i].split('* ');
const newObj = Object.assign({});
newObj.version = update[0];
let list = ;
for ( j = 1; j < update.length; j++ ) {
list.push(update[j]);
}
newObj.notes = list;
notes.push(newObj);
}
this.setState({
notes
});
}).catch((error) => {
console.error(error);
});
}





### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes





### 0.1.2

* Patch notes now implemented when the modal starts.
* Added top lists for organizations

### 0.0.1

* Patch Notes Added
* Modal to include Patch Notes






object-oriented array react.js jsx






share|improve this question









New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Jan 3 at 1:25







Hamburguesa













New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Jan 2 at 20:31









HamburguesaHamburguesa

62




62




New contributor




Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Hamburguesa is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Could you edit with an example markdown file you would be using?
    – ByteSettlement
    Jan 2 at 22:00










  • Added an example .MD file.
    – Hamburguesa
    Jan 3 at 1:25


















  • Could you edit with an example markdown file you would be using?
    – ByteSettlement
    Jan 2 at 22:00










  • Added an example .MD file.
    – Hamburguesa
    Jan 3 at 1:25
















Could you edit with an example markdown file you would be using?
– ByteSettlement
Jan 2 at 22:00




Could you edit with an example markdown file you would be using?
– ByteSettlement
Jan 2 at 22:00












Added an example .MD file.
– Hamburguesa
Jan 3 at 1:25




Added an example .MD file.
– Hamburguesa
Jan 3 at 1:25










1 Answer
1






active

oldest

votes


















0














You got the first step right by removing every white space and line breaks from your string. Next you will have to remove the first occurence of ### by slicing your string and then splitting it.



When done, you will have to map the result of your split. Map will create a new array the exact same size of your input and apply the same function on every attribute of it.



You will then have to split each update by the *. When done, you can get the first value of your array with shift. This function will give out the first element of your array and delete it from the array, only leaving the notes that are going to be put in the notes variable :






const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
updateData = update.split('* ')
return {
version: updateData.shift(),
notes: updateData
}
})

console.log(updates)





You can then put this function in the .then of your axios call






share|improve this answer























    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "196"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    Hamburguesa is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210763%2fcreate-an-array-of-objects-for-patch-notes-in-react%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You got the first step right by removing every white space and line breaks from your string. Next you will have to remove the first occurence of ### by slicing your string and then splitting it.



    When done, you will have to map the result of your split. Map will create a new array the exact same size of your input and apply the same function on every attribute of it.



    You will then have to split each update by the *. When done, you can get the first value of your array with shift. This function will give out the first element of your array and delete it from the array, only leaving the notes that are going to be put in the notes variable :






    const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

    const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
    updateData = update.split('* ')
    return {
    version: updateData.shift(),
    notes: updateData
    }
    })

    console.log(updates)





    You can then put this function in the .then of your axios call






    share|improve this answer




























      0














      You got the first step right by removing every white space and line breaks from your string. Next you will have to remove the first occurence of ### by slicing your string and then splitting it.



      When done, you will have to map the result of your split. Map will create a new array the exact same size of your input and apply the same function on every attribute of it.



      You will then have to split each update by the *. When done, you can get the first value of your array with shift. This function will give out the first element of your array and delete it from the array, only leaving the notes that are going to be put in the notes variable :






      const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

      const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
      updateData = update.split('* ')
      return {
      version: updateData.shift(),
      notes: updateData
      }
      })

      console.log(updates)





      You can then put this function in the .then of your axios call






      share|improve this answer


























        0












        0








        0






        You got the first step right by removing every white space and line breaks from your string. Next you will have to remove the first occurence of ### by slicing your string and then splitting it.



        When done, you will have to map the result of your split. Map will create a new array the exact same size of your input and apply the same function on every attribute of it.



        You will then have to split each update by the *. When done, you can get the first value of your array with shift. This function will give out the first element of your array and delete it from the array, only leaving the notes that are going to be put in the notes variable :






        const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

        const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
        updateData = update.split('* ')
        return {
        version: updateData.shift(),
        notes: updateData
        }
        })

        console.log(updates)





        You can then put this function in the .then of your axios call






        share|improve this answer














        You got the first step right by removing every white space and line breaks from your string. Next you will have to remove the first occurence of ### by slicing your string and then splitting it.



        When done, you will have to map the result of your split. Map will create a new array the exact same size of your input and apply the same function on every attribute of it.



        You will then have to split each update by the *. When done, you can get the first value of your array with shift. This function will give out the first element of your array and delete it from the array, only leaving the notes that are going to be put in the notes variable :






        const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

        const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
        updateData = update.split('* ')
        return {
        version: updateData.shift(),
        notes: updateData
        }
        })

        console.log(updates)





        You can then put this function in the .then of your axios call






        const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

        const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
        updateData = update.split('* ')
        return {
        version: updateData.shift(),
        notes: updateData
        }
        })

        console.log(updates)





        const data = '### 0.1.2n* Patch notes now implemented when the modal starts.n* Added top lists for organizationsn### 0.0.1n* Patch Notes Addedn* Modal to include Patch Notes'

        const updates = data.replace(/(rn|n|r)/g, '').slice(4).split('### ').map(update => {
        updateData = update.split('* ')
        return {
        version: updateData.shift(),
        notes: updateData
        }
        })

        console.log(updates)






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 15 hours ago

























        answered yesterday









        TreycosTreycos

        1606




        1606






















            Hamburguesa is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            Hamburguesa is a new contributor. Be nice, and check out our Code of Conduct.













            Hamburguesa is a new contributor. Be nice, and check out our Code of Conduct.












            Hamburguesa is a new contributor. Be nice, and check out our Code of Conduct.
















            Thanks for contributing an answer to Code Review Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210763%2fcreate-an-array-of-objects-for-patch-notes-in-react%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to make a Squid Proxy server?

            第一次世界大戦

            Touch on Surface Book