![](/img/trans.png)
[英]I have to make a function which takes an array of strings and returns an array with only strings that doesn't start with a vowel
[英]Global variable doesn't work-largestString() which takes an array of strings as input and returns the largest string in this array
<p id="longeststring">
</p>
<script>
var arr=[];
var longest=arr[0];
function largestString(arr)
{
for (var i=0;i<arr.length;i++)
{if(arr[i].length>=longest.length)
{longest=arr[i]}
}
return longest;
}
z=["what","am","I","doing","now"]
document.getElementById("longeststring").innerHTML=largestString(z)
</script>
因此,當 var long=arr[0] 在 function 內時,它可以工作,但是當我把它帶到外面時,它顯示“最長未定義”。 這是為什么? 我認為通過將其放在 function 之外,變量“最長”可以自行更新。
先感謝您。
當你把表達式var longest=arr[0];
在 function 之外, arr
指的是全局變量。 它的值設置為[]
,因此它的第一項的值是未定義的。
但是如果你把表達式var longest=arr[0];
在 scope 內部, arr
指的是參數,所以它會有正確的值。
@bran0 的回答是正確的。 我建議你可以寫var longest = ""
而不是var longest = arr[0]
因為arr
的長度可能為零,並且在這種情況下longest
將是未定義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.