javascript将字符串拆分为int数组

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

  • 它应该是`$ .map($('#TheData').text().split(','),function(){...});`. (5认同)

Dan*_*ana 16

纯 Javascript 解决方案:

const elementText = document.getElementById('divSourceID').innerText;
const numericList = elementText.split(',').map(Number);
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息

  1. getElementById : "Document 方法 getElementById() 返回一个 Element 对象,该对象表示其 id 属性与指定字符串匹配的元素。由于元素 ID 在指定时必须是唯一的,因此它们是快速访问特定元素的有用方法。 (……)”。来源developer.mozilla.org

  2. Array.prototype.map:“map() 方法创建一个新数组,其中填充了对调用数组中的每个元素调用提供的函数的结果”。来源developer.mozilla.org

  3. 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)