When using JSON.parse to achieve the output expected I am getting error Unexpected token B in JSON at position 1
. What is it I am missing?
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a =[]; var b = []; for(var i=0;i<array1.length;i++){ var c = array1[i]; var d = array2[i]; e = "[" + c +","+d +"]"; e =JSON.parse(e); a.push(e); } console.log(a);
Ouptput Expected
[[ 'BODEBO', '1'],[ 'CARNE','2' ]];
without json.parse
OUTPUT
[ '[BODEBO,1]', '[CARNE,2]' ]
I dont want ' ' on each array element
Might as well just make an array if the output expected has arrays.
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a = []; for(var i = 0; i < array1.length; i++){ a.push([array1[i], array2[i]]); } console.log(a);
But who needs loops when you have map?
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); console.log(array1.map((s, idx) => [s,array2[idx]]));
You could simply loop over the first array, and then push a single array onto your output array.
var string1 = "BODEBO,CARNE";
var array1 = string1.split(',');
var string2 = "1,2";
var array2 = string2.split(',');
var a = [];
for(var i=0;i<array1.length;i++){
a.push([ array1[i], array2[i] ]);
}
// You can now just make use of the 'a' array.
console.log(a);
Giving you the following output: [["BODEBO","1"],["CARNE","2"]]
In order for JSON.parse
to work you need to provide valid JSON. The function is currently passing in an array like:
[BODEBO,1]
which is not valid. To make it work you need to wrap each item in quotes, like:
["BODEBO","1"]
var string1 = "BODEBO,CARNE"; var array1 = string1.split(','); var string2 = "1,2"; var array2 = string2.split(','); var a = []; var b = []; for (var i = 0; i < array1.length; i++) { var c = array1[i]; var d = array2[i]; e = "[\\"" + c + "\\",\\"" + d + "\\"]"; e = JSON.parse(e); a.push(e); } console.log(a);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.