fre*_*hie 27 javascript jquery
我有一个字符串在页面上,我想要一个int数组.
<div id="TheData">2,3,0,43,23,53</div>
Run Code Online (Sandbox Code Playgroud)
我写的是这样的:
var ArrayData = ($('#TheData').html()).split(',');
Run Code Online (Sandbox Code Playgroud)
但是,ArrayData变为字符串数组.如何获得一系列整数?请注意,HTML中的某些元素可以等于0.
谢谢.
Rig*_*red 34
var ArrayData = $('#TheData').html().split(',').map( Number );
Run Code Online (Sandbox Code Playgroud)
Array.prototype.map()使用MDN中的代码添加到旧版浏览器.
您可以$.map()以相同的方式使用jQuery ,但它无法使用$.prototype.map().
var ArrayData = $.map( $('#TheData').html().split(','), Number );
Run Code Online (Sandbox Code Playgroud)
Kei*_*amo 32
var ArrayData = $.map($('#TheData').text().split(','), function(value){
return parseInt(value, 10);
// or return +value; which handles float values as well
});
Run Code Online (Sandbox Code Playgroud)
您可以$.map通过调用数组中的parseInt每个元素将字符串数组转换为int
Dan*_*ana 16
纯 Javascript 解决方案:
const elementText = document.getElementById('divSourceID').innerText;
const numericList = elementText.split(',').map(Number);
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:
getElementById : "Document 方法 getElementById() 返回一个 Element 对象,该对象表示其 id 属性与指定字符串匹配的元素。由于元素 ID 在指定时必须是唯一的,因此它们是快速访问特定元素的有用方法。 (……)”。来源:developer.mozilla.org。
Array.prototype.map:“map() 方法创建一个新数组,其中填充了对调用数组中的每个元素调用提供的函数的结果”。来源:developer.mozilla.org。
array.map(Number):此调用意味着第一个接收到的参数将自动转换为数字,结果与您显式声明箭头函数的结果相同:
const numericList = elementText.split(',').map(Number);
Run Code Online (Sandbox Code Playgroud)
结果相同:
const numericList = elementText.split(',').map(str => Number(str));
Run Code Online (Sandbox Code Playgroud)
JIT:特别感谢@Robbendebiene 出色的代码审查,简化了之前的代码。
Tan*_*ith 12
var ArrayData = $('#TheData').text().split(',').map(Number);
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到更多:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
小智 7
这是一个简单的答案
let x = "1,2,3,4";
let result = x.split(",").map((e) => parseInt(e));
console.log(result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40941 次 |
| 最近记录: |