我正在尝试将此字符串数组(都是整数)转换为数字数组。由于某些原因,当我使用以下函数时,它不会将数组中的第一个字符串更改为数字。我不知道为什么。有人可以向我解释吗?

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

makeNums();

09-30 19:15