Как заменить точки запятыми в массиве на JavaScript - PullRequest
2 голосов
/ 27 марта 2020

У меня есть массив в одном столбце в Google Sheets. массив содержит точки "." в качестве разделителя для дробной части (0,234, 23,6789, 34,987 и др. c.). Я хочу заменить все точки в массиве запятыми ",", чтобы получить (0,234, 23,6789, 34,987 и т. Д. c.) С помощью Google Script. Я написал этот код, но он не работает.

function checkItNow() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('TESTSCRIPTS');
  let vals1 = sheet.getRange(1, 2, sheet.getLastRow()).getValues().map(a => a[0]);
  Logger.log(vals1);
  let newVals1 = vals1.map(dots => dots.replace('.', ','));

DEMO:

let vals1 = [0.234, 23.6789, 34.987]
let newVals1 = vals1.map(dots => dots.replace('.', ','));
console.log( newVals1 )

Я получаю ошибку:

Ошибка: dots.replace не является функцией

Где я не так и как это исправить?

Мой журнал консоли:

[20-03-27 15:16:29:211 ICT] [32.6942782575, 19.9155757705, 147.12263620000002, 489.1165073995, 892.202845, 0.37799999999999995, 0.023364250000000003, 0.26248482500000003, 0.15887690000000002, 23.026564925, 0.04906492500000001, 0.0, 706.7257752500001, 0.0, 0.0, 60.44003225000001, 0.0, 4.630720500000001, 618.5996974999999, 7.784899025, 108.97249249999999, 701.2664050000001, 1737.10503, 575.4707025, 3.8459734249999995, 0.6364439825, 0.456, 1.0932774250000001, 64.57385624999999, 23628.313777499996, 268.75, 1407.9519174999998, 8320.3449425, 10634.185062499999, 3.78603115, 6.715, 0.0, 6.715, 3.8336425000000003, 0.0, 4516.750427499999, 44.659411000000006, 1.1592136175, 1.7699011725000002, 8.076147557499999, 3.6708841524999993, 0.4781239375, 281.6134775, 2.4034999999999997, 219.05541475, 194.3, 10.0378800575]

Ответы [ 3 ]

2 голосов
/ 27 марта 2020

Вы можете решить эту проблему, используя метод toString():

let newVals1 = vals1.map(dots => dots.toString().replace(/\./g,','));

, так как dots здесь на самом деле число, а не строка, а replace()* Метод 1010 * работает только со строками.

let vals1 = [0.234, 23.6789, 34.987]
let newVals1 = vals1.map(dots => dots.toString().replace('.', ','));
console.log( newVals1 )
0 голосов
/ 27 марта 2020

Регулярное выражение должно иметь вид: /\./g

let regex = /\./g

let vals1 = ['0.234', '23.6789', '34.987']
let newVals1 = vals1.map(dots => dots.replace(regex, '\,'));
console.log( newVals1 )
0 голосов
/ 27 марта 2020

Вы также можете использовать

.replace(/\./g,',')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...