Javascript split string для массива int
У меня есть строка, которая на странице и из которой я хочу массив int.
<div id="TheData">2,3,0,43,23,53</div>
Я пишу это:
var ArrayData = ($('#TheData').html()).split(',');
Однако ArrayData становится массивом строк. Как я могу получить массив ints? Обратите внимание, что некоторые из элементов в HTML могут быть равны 0.
Спасибо.
Ответы
Ответ 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 );
Ответ 3
var ArrayData = $('#TheData').text().split(',').map(Number);
Вы можете найти больше здесь:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Ответ 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