Javascript 将字符串数组转换为数字

Javascript 将字符串数组转换为数字,javascript,arrays,for-loop,parseint,Javascript,Arrays,For Loop,Parseint,我试图将这个字符串数组(都是整数)转换成一个数字数组。出于某种原因,当我使用以下函数时,它不会将数组中的第一个字符串更改为数字。我不知道为什么。有人能给我解释一下吗 var listArray = ['7', '4', '2', '12', '9']; function makeNums(){ for(var i = 0; i < listArray.length; i++){ listArray[i] = parseInt(listArray[i], 10); lis

我试图将这个字符串数组(都是整数)转换成一个数字数组。出于某种原因,当我使用以下函数时,它不会将数组中的第一个字符串更改为数字。我不知道为什么。有人能给我解释一下吗

var listArray = ['7', '4', '2', '12', '9'];
function makeNums(){
  for(var i = 0; i < listArray.length; i++){
    listArray[i] = parseInt(listArray[i], 10);
    listArray.sort(function(a,b) { return a - b; });
    console.log(listArray[i]);  
  }

}

makeNums();
var listary=['7','4','2','12','9'];
函数makeNums(){
对于(var i=0;i
将排序移到迭代之外。这样,在处理数组之前,它不会进行排序。请尝试运行以下代码段:

var listary=['7','4','2','12','9'];
函数makeNums(){
对于(var i=0;imakeNums()将排序移到迭代之外。这样,在处理数组之前,它不会进行排序。请尝试运行以下代码段:

var listary=['7','4','2','12','9'];
函数makeNums(){
对于(var i=0;imakeNums()您可以使用
number
作为回调将其转换为数字,然后进行排序

var listary=['7','4','2','12','9'];
log(listArray);
sort(函数(a,b){返回a-b;});

log(listArray)您可以使用
number
作为回调将其转换为数字,然后进行排序

var listary=['7','4','2','12','9'];
log(listArray);
sort(函数(a,b){返回a-b;});

log(listArray)将字符串转换为整数后排序,而不是在转换过程中。它现在正在尝试对字符串和数字进行排序:(它将字符串四处移动,这样您就无法将它们全部转换为整数。为什么不执行
listArray.map(函数(num){return 1*num}).排序(函数(a,b){return a-b;})
为什么要尝试在循环内部排序?为什么您认为不能使用
map
-方法?在将字符串转换为整数后排序,而不是在转换过程中。它正在尝试对字符串和数字进行排序:(它会移动字符串,这样您就不能将它们全部转换为整数。为什么不直接执行
listArray.map(函数(num){return 1*num})、sort(函数(a,b){return a-b;})
为什么你要尝试在循环内部排序?为什么你认为你不能使用
map
-方法?我不能使用map方法,这个答案满足了我正在处理的一个更大问题的需要。谢谢你的启发!我不能使用map方法,这个答案满足了我正在处理的一个更大问题的需要。谢谢il照明!这在控制台中工作,但与我正在处理的问题的其余部分不协调。这是一个很好的答案。谢谢你,尼娜!这在控制台中工作,但与我正在处理的问题的其余部分不协调。这是一个很好的答案。谢谢你,尼娜!