2

I want to convert this

const data = [
 {
   date: "2020-01",
   pageviews: "1548"
 },
 {
   date: "2020-01",
   pageviews: "2000"
 },
]

to

const data = [
 {
   date: "2020-01",
   pageviews: 1548
 },
 {
   date: "2020-01",
   pageviews: 2000
 },
]

but I can't find the a way. I want to use those data to Rechart and the pageviews need to be numbers not strings Can someone help me?

nikospap
  • 211
  • 1
  • 3
  • 13

3 Answers3

3

Solution

You can use forEach to loop over your array.
At each entry parse your pageviews to an int with parseInt()

const data = [
 {
   date: "2020-01",
   pageviews: "1548"
 },
 {
   date: "2020-01",
   pageviews: "2000"
 },
]

console.log(data);

data.forEach((val) => {
  val.pageviews = parseInt(val.pageviews);
});

console.log(data);
Aalexander
  • 4,987
  • 3
  • 11
  • 34
0

<script>
  const data = [
 {
   date: "2020-01",
   pageviews: "1548"
 },
 {
   date: "2020-01",
   pageviews: "2000"
 },
]

 data.forEach(item => {
  item.pageviews = parseInt(item.pageviews)
  return item
 })
 
 console.log(data)
</script>

You can use the parseInt function of JavaScript to convert your String to a Number.

niklhs
  • 166
  • 9
0

If you do not want to alter the original array, you can use Array#map with spread syntax.

const data = [
 {
   date: "2020-01",
   pageviews: "1548"
 },
 {
   date: "2020-01",
   pageviews: "2000"
 },
]
const res = data.map(({pageviews, ...rest})=>({...rest, pageviews: +pageviews}));
console.log(res);
Unmitigated
  • 76,500
  • 11
  • 62
  • 80