Настройки вывода строки для представления в виде массива // -NODE JS- - PullRequest
0 голосов
/ 26 июня 2018

Это моя текущая строка в переменной, полученная из jquery с использованием cheerio npm:

281737.0886737347096
281737.0886737348482
281737.0886737351833
281737.0886737351840
281737.0886737351857
281737.0886737355763
281737.0886737361528
281737.0886737361535
281737.0886737361580
undefined
undefined

Мне нужно, чтобы массив создавался с каждым уникальным номером в отдельном индексе: например, array = [281737.0886737347096,281737.0886737348482,etc] Такие что:

array[0] {when called}  = 281737.0886737347096

И, следовательно, желая удалить любые «неопределенные» элементы из окончательного массива.

Я пробовал это:

var array  = []
array.push(unique) #unique numbers of string pushed into array
array= array.filter(function(a){return typeof a !== 'undefined';});

Однако при возврате массива в консоль он ничего не возвращает.

1 Ответ

0 голосов
/ 26 июня 2018

Я не получил вас, но я думаю, что вы хотите сделать это: -

let s = `281737.0886737347096
281737.0886737348482
281737.0886737351833
281737.0886737351840
281737.0886737351857
281737.0886737355763
281737.0886737361528
281737.0886737361535
281737.0886737361580
undefined
undefined`;

let o = s.split('\n').filter(e => e).reduce((acc, cv, i) => {
    acc[cv] = i + 1;
    return acc;
}, {});
let arr = Object.keys(o);
arr = arr.filter(x => x !== "undefined");
console.log(arr);

Редактировать

Мы имеем дело со строками вместо числа из-за несовместимого 64-битного представления с плавающей запятой в этом случае.

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