繁体   English   中英

将数组值从字符串更改为数字

[英]Change array values to number from string

我有这些值的数组:

var items = [Thursday,100,100,100,100,100,100]

我从URL查询字符串中获取它们,因此它们都是字符串值。 我希望除第一列外的所有列均为数字。 数组的列数可能有所不同,因此是否有一种方法可以设置此项,使得items [0]始终是字符串,而items [n]始终是数字?

“ ...是否有一种方法可以设置此项,使items [0]始终是字符串,而item [n]始终是数字?”

使用.shift()获取第一个, .map()构建一个新的数字数组,然后使用.unshift()添加第一个。

var first = items.shift();
items = items.map(Number);
items.unshift(first);

演示: http : //jsfiddle.net/EcuJu/


我们可以这样压缩它:

var first = items.shift();
(items = items.map(Number)).unshift(first);

演示: http : //jsfiddle.net/EcuJu/1/


我认为这应该为您工作。 您可以设置自己喜欢的默认数字,而不是0。

var items = ["Thursday","100","100","100","100","100","100"], i;
for (i = 1; i < items.length; i++)
{
    if(typeof items[i] !== "number")
    {
        items[i] = isNaN(parseInt(items[i], 10)) ? 0 : parseInt(items[i], 10);
    }
}

parseFloat()会将您的字符串转换为数字。

这是现代浏览器的示例代码(不适用于IE7 / IE8):

var convertedItems=items.map(function(element,index){
  // Convert array elements with index > 0
  return (index>0)?parseFloat(element):element;
});

还有一个parseInt()方法可转换为整数:

parseInt(element,10)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM