2015-04-04 106 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