Javascript 需要使用IIFE函数输出zipcodes
我是IIFE功能的新手,我很难理解如何实现它,但我确实理解它是什么以及它的目的是什么。问题陈述: 您的客户希望从邮政编码研究中获得一份邮政编码清单(每个只列出一次),按从最小到最大的顺序排列。他希望它“只运行”(自调用)。 这是我的旧代码,可以正常工作并正确显示zipcodes。我将显示已运行但不被视为自调用的第一个初始代码:Javascript 需要使用IIFE函数输出zipcodes,javascript,node.js,iife,self-invoking-function,Javascript,Node.js,Iife,Self Invoking Function,我是IIFE功能的新手,我很难理解如何实现它,但我确实理解它是什么以及它的目的是什么。问题陈述: 您的客户希望从邮政编码研究中获得一份邮政编码清单(每个只列出一次),按从最小到最大的顺序排列。他希望它“只运行”(自调用)。 这是我的旧代码,可以正常工作并正确显示zipcodes。我将显示已运行但不被视为自调用的第一个初始代码: window.onload = displayUniqueZipcodes; function assignment12_3() { // code goes
window.onload = displayUniqueZipcodes;
function assignment12_3() {
// code goes in here.
}
// Logic to display the zipcodes.
function displayUniqueZipcodes(){
// Declare variables.
var records, zip;
var output = document.getElementById('outputDiv');
var zipcodes=[];
var outputString = "";
// Opens the records.
records = openZipCodeStudyRecordSet();
// Loops through records, pushes the unique records into the zipcodes array.
while(records.readNextRecord()){
zip = records.getSampleZipCode();
if (!zipcodes.includes(zip)){
zipcodes.push(zip);
}
}
// Sorts the zipcodes.
zipcodes.sort();
// outputs the zipcodes.
for (var v in zipcodes){
outputString += zipcodes[v] + "</br>";
}
output.innerHTML = outputString;
}
window.onload=displayUniqueZipcodes;
功能分配12_3(){
//代码在这里。
}
//显示zipcodes的逻辑。
函数display uniquezipcodes(){
//声明变量。
var记录,zip;
var output=document.getElementById('outputDiv');
变量zipcodes=[];
var outputString=“”;
//打开记录。
records=openZipCodeStudyRecordSet();
//循环记录,将唯一记录推入zipcodes数组。
while(records.readNextRecord()){
zip=records.getSampleZipCode();
如果(!zipcodes.includes(zip)){
拉链;拉链;
}
}
//对zipcodes进行排序。
zipcodes.sort();
//输出zipcodes。
用于(zipcodes中的var v){
outputString+=zipcodes[v]+“”;
}
output.innerHTML=outputString;
}
&以下是我目前为止不再显示zipcodes的代码,以及我利用IIFE函数的尝试:
function assignment12_3() {
// Your code goes in here.
//Variables
var records, zip;
var output = document.getElementById("outputDiv");
var zipcodes = [];
var outputString = "";
//Gets the records...
records = openZipCodeStudyRecordSet();
//This will loop through the records and put unique records
//into an array
while(records.readNextRecord()){
zip = records.getSampleZipCode();
if(!zipcodes.includes(zip)){
zipcodes.push(zip);
}
}
//Will sort the zipcodes
zipcodes.sort();
//outputs the zipcodes.
for(var z in zipcodes){
outputString += zipcodes[z] + "</br>";
}
outputDiv.innerHTML += outputString;
}();
功能分配12_3(){
//你的密码在这里。
//变数
var记录,zip;
var output=document.getElementById(“outputDiv”);
变量zipcodes=[];
var outputString=“”;
//获取记录。。。
records=openZipCodeStudyRecordSet();
//这将循环记录并放置唯一的记录
//排成一列
while(records.readNextRecord()){
zip=records.getSampleZipCode();
如果(!zipcodes.includes(zip)){
拉链;拉链;
}
}
//将对zipcodes进行排序
zipcodes.sort();
//输出zipcodes。
for(zipcodes中的变量z){
outputString+=zipcodes[z]+“”;
}
outputDiv.innerHTML+=outputString;
}();
谢谢。可能重复的
(()=>{console.log(“hello world”);})(;//iLife hello world
只需将代码放在那里而不是控制台日志中。您需要将函数包围在()
中,以便将其从函数声明转换为表达式,然后可以立即调用函数表达式。对于记录,另一种方法是使用var assignment12_3=function(){}()
-您现在拥有的,但必须将其分配给变量-然后您还处理函数表达式。但是人们倾向于避免使用它,因为很难看到函数体后面的最后一个()
。关于声明/表达式: