2015-04-04 62 views
0

我有一个数组字符串转换成数字多维数组

MyArray = [ 
["Oswaldo","21749"], 
["Mao","19580"], 
["Angeline",'53692'] 
] 

如何转换的数字从字符串到实际的数字,并保存在同一阵列中或在新的一个。

回答

2

您可以使用+投串数字:

for (var i in myArray) { 
    myArray[i][1] = +myArray[i][1]; 
} 

Fiddle

0

递归迭代都会让你遍历嵌套数组,然后就coherce价值数

function parseNum(arr) { 

    arr.forEach(function(value, index) { 
     if (Array.isArray(value)) { 
      parseNum(value); 
     } else if (!isNaN(parseFloat(value))) { 
      arr[index] = (+value); 
     } 
    }); 

} 

FIDDLE

0

http://jsfiddle.net/Bladepianist/rpy2aedh/1/

MyArray = [ 
["Oswaldo","21749"], 
["Mao","19580"], 
["Angeline",'53692'] 
]; 

for (var item in MyArray) { 
    MyArray[item][1] = parseInt(item[1], 10); 
} 

parseInt函数(),如果你想他们int,而 “10” 是基地10 parseFloat(),如果你更喜欢他们这种格式:)。

0

您可以使用parseInt()parseFloat()函数。

for (var i = 0; i < MyArray.length; ++i) { 
    MyArray[i][1] = parseInt(MyArray[i][1]); 
    // Or parseFloat if there is a float 
} 
1

我认为Array map是更有效和更优雅:

var MyArray = [ 
 
["Oswaldo","21749"], 
 
["Mao","19580"], 
 
["Angeline",'53692'] 
 
]; 
 

 
MyArray = MyArray.map(function (obj) { 
 
    return [obj[0],parseInt(obj[1])]; 
 
}); 
 

 
document.write(JSON.stringify(MyArray));

1

笔记,js尝试引用一个index,例如其中数组项字符串的位置仅含有号码可能是而不是可能是索引1包含在

阵列内尝试

var MyArray = [ 
 
    ["Oswaldo", "21749"], 
 
    ["Mao", "19580"], 
 
    ["Angeline", '53692'] 
 
]; 
 

 
MyArray = MyArray.map(function(items) { 
 
    return items.map(function(item) { 
 
    return /^\d+$/.test(item) && !/[a-z]/i.test(item) ? Number(item) : item 
 
    }) 
 
}); 
 

 
console.log(JSON.stringify(MyArray));

+1

我们回答的同时,但你可以做到这一点只用一个地图。看我的答案.. – DrKey 2015-04-04 15:59:41

+0

@DrKey查看更新后的帖子。 'js'试图在'MyArray'中的数组中的特定'index'处不参考,例如包含数字的数组项可能不属于'MyArray'中数组的索引'1' – guest271314 2015-04-04 16:15:09

+0

当然,我的函数只有在数组MyArray中包含2个具有原始索引的值。即使该数组在随机索引中包含两个以上的值,您的函数也能正常工作。 Upvoted! – DrKey 2015-04-04 16:31:07

0

使用开源项目jinqJs

var MyArray = [ 
 
["Oswaldo","21749"], 
 
["Mao","19580"], 
 
["Angeline",'53692'] 
 
]; 
 

 
var result = jinqJs().from(MyArray).select(function(row){row[1] = Number(row[1]); return row;}); 
 
document.body.innerHTML += '<pre>' + JSON.stringify(result, null, 4) + '</pre><br><br>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>

0

更改前面的例子

var MyArray = [ 
    [0, "Oswaldo","21749"], 
    [1, "Mao","19580"], 
    [2, "Angeline",'53692'] 
]; 

function buscar() { 
    var result = new jinqJs().from(MyArray).where(function(row){return (row[0] == '1')}).select(function(row){return row[1]}); 
    console.log(result); 
} 

Plunker