JavaScript: Разделение строки на массив целых чисел
Я столкнулся с проблемой, связанной с извлечением массива целых чисел из строки на странице. У меня есть следующий HTML-код:
<div id="TheData">2,3,0,43,23,53</div>
Я пишу такой код на jQuery:
var ArrayData = ($('#TheData').html()).split(',');
Однако, в результате переменная ArrayData
становится массивом строк. Как я могу преобразовать его в массив целых чисел? Нужно учесть, что некоторые элементы в HTML могут равняться 0
.
Спасибо за помощь!
4 ответ(ов)
Вы можете использовать $.map
, чтобы преобразовать массив строк в числа, вызывая parseInt
для каждого элемента массива. В представленном примере код разбивает текст, содержащийся в элементе с ID TheData
, по запятой, затем применяет parseInt
для преобразования каждого из полученных значений в целое число. Альтернативно, вы можете использовать унарный оператор +
, который также обрабатывает вещественные числа.
Вот переведённый код:
var ArrayData = $.map($('#TheData').text().split(','), function(value){
return parseInt(value, 10);
// или можно использовать +value; это также будет обрабатывать вещественные значения
});
Таким образом, ArrayData
будет содержать массив чисел, преобразованных из строк.
В вашем коде используется jQuery для извлечения текста из элемента с id "TheData", который затем разбивается на массив строк по запятой с помощью метода split(',')
. После этого метод map(Number)
преобразует каждую строку массива в число.
Итак, вот объяснение кода:
var ArrayData = $('#TheData').text().split(',').map(Number);
$('#TheData').text()
— извлекает текстовое содержимое элемента с id "TheData".split(',')
— разбивает полученный текст на массив строк, используя запятую в качестве разделителя.map(Number)
— применяет функциюNumber
к каждому элементу массива, преобразуя строки в числа.
Таким образом, переменная ArrayData
будет содержать массив чисел, извлеченных из текста элемента. Для получения более подробной информации о методе map
вы можете ознакомиться с документацией на MDN.
Вот простой ответ:
let x = "1,2,3,4";
let result = x.split(",").map((e) => parseInt(e));
console.log(result);
Данный код разбивает строку x
, используя запятую в качестве разделителя, а затем преобразует каждый элемент массива в число с помощью функции parseInt
. В результате вы получите массив чисел: [1, 2, 3, 4]
.
Ваш код использует функцию map
после метода split
, чтобы преобразовать строки в массиве в целые числа. Вот объяснение на русском:
var ArrayData = $('#TheData').html().split(',').map(d => { return parseInt(d) });
В этом коде сначала происходит извлечение HTML-содержимого элемента с ID TheData
с помощью метода html()
, затем это содержимое разбивается на массив строк с помощью метода split(',')
, который разделяет строки по запятой. После этого используется функция map
, чтобы пройтись по каждому элементу массива и выполнить преобразование: с помощью parseInt(d)
каждую строку преобразуем в целое число. В результате ArrayData
будет массивом целых чисел.
Таким образом, использование map
после split
позволяет вам удобно трансформировать данные в необходимый формат.
Как перенаправить на другую веб-страницу?
Прокрутка к элементу с использованием jQuery
Как определить нажатие клавиши Esc?
Как получить данные формы с помощью JavaScript/jQuery?
Как выполнить код после сброса HTML-формы с помощью jQuery?