Подтвердить что ты не робот

Javascript split string для массива int

У меня есть строка, которая на странице и из которой я хочу массив int.

<div id="TheData">2,3,0,43,23,53</div>

Я пишу это:

var ArrayData = ($('#TheData').html()).split(',');

Однако ArrayData становится массивом строк. Как я могу получить массив ints? Обратите внимание, что некоторые из элементов в HTML могут быть равны 0.

Спасибо.

4b9b3361

Ответ 1

var ArrayData = $.map($('#TheData').text().split(','), function(value){
    return parseInt(value, 10);
    // or return +value; which handles float values as well
});

Вы можете использовать $.map для преобразования массива строк в int, вызвав parseInt для каждого из элементов массива

Ответ 2

var ArrayData = $('#TheData').html().split(',').map( Number );

Добавить Array.prototype.map() в более старые браузеры с кодом из MDN.


Вы можете использовать jQuery $.map() таким же образом, хотя он не будет работать с $.prototype.map().

var ArrayData = $.map( $('#TheData').html().split(','), Number );

Ответ 4

Для тех, кто хочет решить эту проблему с использованием чистого Javascript, вот способ, которым я это сделал:

const elementText = document.getElementById('TheData').innerText;
const numericList = Array.from(elementText.split(',')).map(item => Number(item));

Для получения дополнительной информации:

1) getElementById: "Метод Document getElementById() возвращает объект Element, представляющий элемент, свойство id которого совпадает с указанной строкой. Поскольку идентификаторы элементов должны быть уникальными, если они указаны, они полезны для получить доступ к определенному элементу быстро. (...) ". Источник: developer.mozilla.org.

2) Array.from: "Метод Array.from() создает новый неглубоко скопированный экземпляр Array из массива или повторяемого объекта. (...)". Источник: developer.mozilla.org