繁体   English   中英

参数和论点。 如何返回包含数组中所有项目的句子?

[英]Parameters and arguements. How do I return the sentence with all the items in the array?

如果我传入“最大的国家”作为参数,我希望它返回条件中的相应字符串以及此数组 [“中国”、“印度”、“美国”] 中的所有国家。 如果我传入“best fruits”作为参数,我希望它返回条件中的相应字符串和数组 ["Apples", "Bananas"] 中的所有水果。

我的代码不这样做。 它只返回一个国家,第一个或一个水果,第一个。 我如何让它返回相应 arrays 中的所有项目?

 let sentenceC = document.getElementById("constructed") function generateSentence(desc, arr) { for (let i = 0; i < arr.length; i++) { if (desc === "largest countries") { return `The 3 ${desc} are ${arr[i]}, ` } else if (desc === "best fruits") { return `The 2 ${desc} are ${arr[i]}, ` } } } sentenceC.innerHTML = generateSentence("largest countries", ["China", "India", "USA"])
 <p id="constructed"></p>

您根本不需要循环,只需使用Array.prototype.join将数组值连接成一个字符串即可。 例如:

 let sentenceC = document.getElementById("constructed") function generateSentence(desc, arr) { if (desc === "largest countries") { return `The 3 ${desc} are ${arr.join(', ')}` } else if (desc === "best fruits") { return `The 2 ${desc} are ${arr.join(', ')}` } } sentenceC.innerHTML = generateSentence("largest countries", ["China", "India", "USA"])
 <p id="constructed"></p>

您甚至可以通过不对字符串中的长度进行硬编码并使用提供的实际数组长度来改进它,这意味着您甚至不需要if条件:

 let sentenceC = document.getElementById("constructed") function generateSentence(desc, arr) { return `The ${arr.length} ${desc} are ${arr.join(', ')}` } sentenceC.innerHTML = generateSentence("largest countries", ["China", "India", "USA"])
 <p id="constructed"></p>

您不需要使用 for,只需像下面那样使用 join:

 function generateSentence(desc, arr){ if(desc === "largest countries"){ return `The 3 ${desc} are ${arr.join(",")}, ` } else if (desc === "best fruits"){ return `The 2 ${desc} are ${arr.join(",")}, ` } }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM