Как преобразовать строку в массив в NodeJs - PullRequest
0 голосов
/ 07 мая 2020

У меня есть эта строка:

    var d = [
    '[(not set),20200409,103,0.0]',
    '[(not set),20200410,112,0.0]',
    '[(not set),20200411,56,0.0]',
    '[(not set),20200412,58,0.0]',
    '[(not set),20200413,108,0.0]',
    '[(not set),20200414,91,0.0]'];

Но мне нужен этот тип массива, преобразовав строку d , которая должна выглядеть после обработки.

    var processd_array = [
     ['(not set)',20200409,103,0.0],
     ['(not set)',20200410,112,0.0],
     ['(not set)',20200411,56,0.0],
     ['(not set)',20200412,58,0.0],
     ['(not set)',20200413,108,0.0],
     ['(not set)',20200414,91,0.0] ];

Как это сделать в Nodejs?

1 Ответ

2 голосов
/ 08 мая 2020

Сначала разделим каждый элемент массива d на части.

var d= [
  '[(not set),20200409,103,0.0]',
  '[(not set),20200410,112,0.0]',
  '[(not set),20200411,56,0.0]',
  '[(not set),20200412,58,0.0]',
  '[(not set),20200413,108,0.0]',
  '[(not set),20200414,91,0.0]'];
 
const result = d.map(item => item.split(','));

console.log(result);

Это работает, но не избавляется от [] символов с начала и с конца каждой строки.

Давайте исправим:

var d= [
  '[(not set),20200409,103,0.0]',
  '[(not set),20200410,112,0.0]',
  '[(not set),20200411,56,0.0]',
  '[(not set),20200412,58,0.0]',
  '[(not set),20200413,108,0.0]',
  '[(not set),20200414,91,0.0]'];

// remove [] characters from a string  
const removeUnwantedCharacters = str => str.replace(/(\[|\])/, '');

const result = d.map(item => item.split(',').map(removeUnwantedCharacters));

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...