我有一个数组字符串转换成数字多维数组
MyArray = [
["Oswaldo","21749"],
["Mao","19580"],
["Angeline",'53692']
]
如何转换的数字从字符串到实际的数字,并保存在同一阵列中或在新的一个。
我有一个数组字符串转换成数字多维数组
MyArray = [
["Oswaldo","21749"],
["Mao","19580"],
["Angeline",'53692']
]
如何转换的数字从字符串到实际的数字,并保存在同一阵列中或在新的一个。
递归迭代都会让你遍历嵌套数组,然后就coherce价值数
function parseNum(arr) {
arr.forEach(function(value, index) {
if (Array.isArray(value)) {
parseNum(value);
} else if (!isNaN(parseFloat(value))) {
arr[index] = (+value);
}
});
}
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(),如果你更喜欢他们这种格式:)。
您可以使用parseInt()
或parseFloat()
函数。
for (var i = 0; i < MyArray.length; ++i) {
MyArray[i][1] = parseInt(MyArray[i][1]);
// Or parseFloat if there is a float
}
我认为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));
笔记,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));
使用开源项目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>
更改前面的例子
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);
}
我们回答的同时,但你可以做到这一点只用一个地图。看我的答案.. – DrKey 2015-04-04 15:59:41
@DrKey查看更新后的帖子。 'js'试图在'MyArray'中的数组中的特定'index'处不参考,例如包含数字的数组项可能不属于'MyArray'中数组的索引'1' – guest271314 2015-04-04 16:15:09
当然,我的函数只有在数组MyArray中包含2个具有原始索引的值。即使该数组在随机索引中包含两个以上的值,您的函数也能正常工作。 Upvoted! – DrKey 2015-04-04 16:31:07