I want to convert the first element to an int like the following
[["bad", ddd, 2.0, 1.0], ["great",ddd , 3.0, 1.0], ["fair",ddd , 4.0, 1.0], ["great",ddd , 5.0, 1.0]]
↓
[[0, ddd, 2.0, 1.0], [2,ddd , 3.0, 1.0], [1,ddd , 4.0, 1.0], [2,ddd , 5.0, 1.0]]
what is the best way to do this? I have tried to use map but have no success.
const map = new Map();
map.set("bad", 0);
map.set("great", 2);
map.set("fair", 1);
const param = [["bad", 'zzz', 2.0, 1.0], ["great",'ddd' , 3.0, 1.0], ["fair",'ddd' , 4.0, 1.0], ["great",'ddd6' , 5.0, 1.0]];
param.map(([a,b,c,d]) => {
return [map.get(a), b, c, d];
});
ddd is string, so "ddd". ratings is a filtering array, when a match is found with .indexOf() it returns an index number:
sub[0] = ratings.indexOf(sub[0]);
// Utility function
const log = data => console.log(JSON.stringify(data));
const data = [
["bad", 'ddd', 2.0, 1.0],
["great", 'ddd', 3.0, 1.0],
["fair", 'ddd', 4.0, 1.0],
["great", 'ddd', 5.0, 1.0]
];
const ratings = ["bad", "fair", "great"];
const result = data.map(sub => {
sub[0] = ratings.indexOf(sub[0]);
return sub;
});
log(result);