在多维数组中将字符串转换为数字

时间:2015-04-04 15:15:10

标签: javascript arrays

我有一个数组

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

如何将数字从字符串转换为实际数字并保存在同一个数组或新数组中。

8 个答案:

答案 0 :(得分:2)

您可以使用+将字符串转换为数字:

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

Fiddle

答案 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);
        }
    });

}

FIDDLE

答案 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);
}

Plunker