Given a JS string
let string = 'language.0.name'
how can I convert the string to formData key notation so I can go
'language[0][name]'
I try this but I want short code with regular expression
let temp = ''; _.forEach(key.split(/[.]/), (i, k) => { temp += k === 0 ? i : `[${i}]`; });
Advertisement
Answer
Can do this with a simple split()
and reduce()
let strings = ['language.0.name', 'language.0', 'language']; // parse function const parseFormStr = (s) => s.split('.').reduce((a, c) => a + `[${c}]`); // test loop strings.forEach(s => console.log([s, ' => ', parseFormStr(s)].join('')));