在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;
}
&#13;
<div id="demo"></div>
&#13;
答案 0 :(得分:5)
它实际上只被调用一次,因为displayCars()
的第二次调用是在myFunction
内部,而永远不会被调用。
更改代码以致电myFunction
并远离W3学校,因为众所周知,这些信息包含不正确和过时的信息。使用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>
答案 1 :(得分:2)
我被打了两次,以便在排序之前和排序之后显示结果。
您还需要添加#include <limits>
的调用。
import * as fs from 'fs'
myFunction
答案 2 :(得分:0)
它被调用一次,但为什么在代码中提到两次是为了让你看到结果,并且在它们被排序之后。
答案 3 :(得分:0)
您的代码段中未调用此函数两次。我假设我们还没有看到更多的代码,它们会调用myFunction
;然后,调用该函数两次的目的是显示排序函数的效果。假设在显示功能之后调用myFunction
,程序将执行以下操作:
myFunction
对汽车进行分类然后再次显示这将允许用户在排序之前和之后查看汽车列表之间的差异。
答案 4 :(得分:0)
它只运行一次。你不是在调用myFunction()函数。如果你调用它,数组将排序。 试试这个吧。
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;
}
myFunction()将排序数组。 displayCars()将显示数组。