javascript - 为什么这个 JavaScript 函数被调用两次?

标签 javascript arrays sorting

在 W3 School Array Sort 的这个示例中,函数 displayCars 似乎被调用了 2 次。它在第一个函数之前和第一个函数内部调用。有人可以解释这背后的原因吗?我很难理解为什么。提前致谢。

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}]

displayCars();

function myFunction() {
    cars.sort(function(a, b){return a.year - b.year});
    displayCars();
}

function displayCars() {
  document.getElementById("demo").innerHTML =
  cars[0].type + " " + cars[0].year + "<br>" +
  cars[1].type + " " + cars[1].year + "<br>" +
  cars[2].type + " " + cars[2].year;
}
<div id="demo"></div>

最佳答案

它实际上只被调用一次,因为对 displayCars() 的第二次调用是在 myFunction 内部,它永远不会被调用。

更改代码以调用 myFunction 并远离 W3 Schools,因为众所周知,它包含不正确且过时的信息。使用Mozilla Developer Network instead .

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}]

myFunction();

function myFunction() {
    cars.sort(function(a, b){return a.year - b.year});
    displayCars();
}

function displayCars() {
  document.getElementById("demo").innerHTML =
  cars[0].type + " " + cars[0].year + "<br>" +
  cars[1].type + " " + cars[1].year + "<br>" +
  cars[2].type + " " + cars[2].year;
}
<div id="demo"></div>

关于javascript - 为什么这个 JavaScript 函数被调用两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688622/

相关文章:

javascript - 修复显示问题 : block in table to match thead and tbody width

javascript - JQuery 获取返回未定义的数据属性

javascript - Protractor js中的for循环

javascript - 如何使用 Javascript 将两个音频 .wav 文件组合/合并为一个文件

arrays - 如何将向量的元素设置为指向数组数组中的第一个元素?

c++ - char 数组等于 int 吗?

c++ - 存储字符数组

php - 是否可以在 PHP 中使用 array_shift() 并获取 key ?

java - 不使用扫描仪将文本数据存储到java数组中

objective-c - 如何在 objective-c 中用最后的数字按字母顺序对数组 Controller 进行排序?