我有一个数组
MyArray = [
["Oswaldo","21749"],
["Mao","19580"],
["Angeline",'53692']
]
如何将数字从字符串转换为实际数字并保存在同一个数组或新数组中。
答案 0 :(得分:2)
答案 1 :(得分: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));
答案 2 :(得分:1)
注意,js
尝试不引用index
,例如,只包含数字的数组项字符串的位置可能不在索引处1
MyArray
尝试
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));
答案 3 :(得分:0)
递归迭代将允许您迭代嵌套数组,然后将值强制转换为数字
function parseNum(arr) {
arr.forEach(function(value, index) {
if ( Array.isArray(value) ) {
parseNum(value);
} else if ( !isNaN(parseFloat(value)) ) {
arr[index] = (+value);
}
});
}
答案 4 :(得分: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()如果你喜欢它们的格式:)。
答案 5 :(得分: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
}
答案 6 :(得分: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>
答案 7 :(得分: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);
}