我有一个字符串在页面上,我想从中获取一个整数数组。
<div id="TheData">2,3,0,43,23,53</div>
我正在写这个:
var ArrayData = ($('#TheData').html()).split(',');
然而,ArrayData
变成了一个字符串数组。我该如何获得一个整数数组?请注意,HTML 中的某些元素可能等于 0
。
谢谢。
我有一个字符串在页面上,我想从中获取一个整数数组。
<div id="TheData">2,3,0,43,23,53</div>
我正在写这个:
var ArrayData = ($('#TheData').html()).split(',');
然而,ArrayData
变成了一个字符串数组。我该如何获得一个整数数组?请注意,HTML 中的某些元素可能等于 0
。
谢谢。
var ArrayData = $('#TheData').html().split(',').map( Number );
使用MDN提供的代码,将Array.prototype.map()
添加到早期版本的浏览器中。
您可以以相同的方式使用jQuery的$.map()
,但它不适用于$.prototype.map()
。
var ArrayData = $.map( $('#TheData').html().split(','), Number );
var ArrayData = $.map($('#TheData').text().split(','), function(value){
return parseInt(value, 10);
// or return +value; which handles float values as well
});
你可以使用$.map
将字符串数组转换为整数数组,方法是对数组中的每个元素调用parseInt
函数。$.map($('#TheData').text().split(','), function(){...});
гЂ‚ - Felix Klingvar data = parseInt(a.split(","));
但它没有起作用。 - Gowtham纯Javascript解决方案:
const elementText = document.getElementById('divSourceID').innerText;
const numericList = elementText.split(',').map(Number);
了解更多信息:
getElementById: "getElementById()方法返回一个表示id属性与指定字符串匹配的元素的Element对象。由于如果指定,则要求元素ID必须是唯一的,因此它们是一种快速访问特定元素的有用方式。(...)". 来源: developer.mozilla.org.
Array.prototype.map: "map() 方法创建一个新数组,其结果是对调用数组中的每个元素调用提供的函数". 来源: developer.mozilla.org.
array.map(Number): 这个调用意味着第一个接收到的参数将自动转换为数字,并产生与您明确声明箭头函数相同的结果:
const numericList = elementText.split(',').map(Number);
与以下结果相同:
const numericList = elementText.split(',').map(str => Number(str));
JIT:特别感谢@Robbendebiene对于优秀的代码审查以及简化之前的代码。
elementText.split(',').map(Number);
- Robbendebienevar ArrayData = $('#TheData').text().split(',').map(Number);
您可以在此处找到更多信息:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map
这里是一个简单的答案。
let x = "1,2,3,4";
let result = x.split(",").map((e) => parseInt(e));
console.log(result);
var ArrayData = $('#TheData').html().split(',').map( d => { return parseInt(d) });
在Split之后使用map函数,在map的回调函数中可以解析该整数。