Заменить запятую из определенного поля в массиве? - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь заменить запятые в определенном поле в массиве. Например, ниже у меня есть следующий массив, который представляет данные, собранные из файла CSV:

[
    {
      "Month/Year": "2019-09",
      "group": "blue",
      "flights": "668,620"
    },
    {
        "Month/Year": "2019-10",
        "group": "blue",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-09",
        "group": "green",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-10",
        "group": "green",
        "flights": "678,520"
    }
]

Желаемый

[
    {
      "Month/Year": "2019-09",
      "group": "blue",
      "flights": "668620"
    },
    {
        "Month/Year": "2019-10",
        "group": "blue",
        "flights": "662520"
    },
    {
        "Month/Year": "2019-09",
        "group": "green",
        "flights": "662520"
    },
    {
        "Month/Year": "2019-10",
        "group": "green",
        "flights": "678520"
    }
]

Как запустить операцию очистки наэто JSON, прежде чем я буду работать с ним? Я думаю, что когда вводится JSON, я обрабатываю его, убирая его, и затем могу работать с ним для построения графиков.

Ответы [ 4 ]

2 голосов
/ 29 октября 2019

Вы можете использовать массив функций карты:

const data = [
    {
      "Month/Year": "2019-09",
      "group": "blue",
      "flights": "668,620"
    },
    {
        "Month/Year": "2019-10",
        "group": "blue",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-09",
        "group": "green",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-10",
        "group": "green",
        "flights": "678,520"
    }
]

const result = data.map(item => {item.flights = item.flights.replace(",",""); return item})
console.log(result)
1 голос
/ 29 октября 2019

Вы можете пойти с простой картой и заменить методы.

let newArray = array.map(obj => {
  obj.flights = obj.flights.replace(/,/g, '');
  
  return obj;
})
0 голосов
/ 29 октября 2019

В javascript есть несколько разных способов перебрать массив. Мне нравятся старые старомодные петли for.

var obj = [
{
  "Month/Year": "2019-09",
  "group": "blue",
  "flights": "668,620"
},
{
    "Month/Year": "2019-10",
    "group": "blue",
    "flights": "662,520"
},
{
    "Month/Year": "2019-09",
    "group": "green",
    "flights": "662,520"
},
{
    "Month/Year": "2019-10",
    "group": "green",
    "flights": "678,520"
}];

for(var i = 0; i < obj.length; i++)
{
    obj[i]['flights'] = obj[i]['flights'].split(',').join('');
}

Использование .split(',') преобразует строку в массив, а затем .join('') преобразует ее обратно в строку, но без разделителя.

0 голосов
/ 29 октября 2019

Предполагая, что вы называете этот массив arr, вы можете получить доступ к каждому из требуемых полей с помощью elem.flights (для каждого элемента массива) и удалить запятую с помощью replace(",", ""):

arr = [
    {
      "Month/Year": "2019-09",
      "group": "blue",
      "flights": "668,620"
    },
    {
        "Month/Year": "2019-10",
        "group": "blue",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-09",
        "group": "green",
        "flights": "662,520"
    },
    {
        "Month/Year": "2019-10",
        "group": "green",
        "flights": "678,520"
    }
];

for(var elem of arr) {
  elem.flights = elem.flights.replace(",", "");
  console.log(elem.flights);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...