将数组值更改为字符串中的数字

时间:2013-05-14 16:37:27

标签: javascript arrays string numbers

我有一个包含这些值的数组:

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

我从URL查询字符串中抓取这些内容,因此它们都是字符串值。我希望除第一列之外的所有列都是数字。列数可能会有所不同,所以有没有办法设置这个,所以items [0]总是一个字符串,但items [n]总是一个数字?

3 个答案:

答案 0 :(得分:5)

  

" ...有没有办法设置这个,所以items [0]总是一个字符串,但items [n]总是一个数字?"

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

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

DEMO: http://jsfiddle.net/EcuJu/


我们可以将它压缩一点:

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

DEMO: http://jsfiddle.net/EcuJu/1/


答案 1 :(得分: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);
    }
}

答案 2 :(得分:1)

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)