2012-01-31 53 views
0

我在谷歌瀏覽器中測試了下面的代碼,但是警報顯示爲什麼? (我把它從http://msdn.microsoft.com/en-us/magazine/cc163419.aspx爲什麼我的javascript警報不顯示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>test</title> 
</head> 
<body> 
<script type="text/javascript"> 
function filter(pred, arr) { 
    var len = arr.length; 
    var filtered = []; // shorter version of new Array(); 
    // iterate through every element in the array... 
    for (var i = 0; i &lt; len; i++) { 
     var val = arr[i]; 
     // if the element satisfies the predicate let it through 
     if (pred(val)) { 
      filtered.push(val); 
     } 
    } 
    return filtered; 
} 

var someRandomNumbers = [12, 32, 1, 3, 2, 2, 234, 236, 632, 7, 8]; 
var numbersGreaterThan100 = filter(function (x) { 
    return (x > 100) ? true : false; 
}, someRandomNumbers); 

// displays 234, 236, 632 
alert(numbersGreaterThan100); 

</script> 
</body> 
</html> 
+0

你的標題和質疑的身體衝突。請澄清。 – Cameron 2012-01-31 17:56:49

+0

可能是你的腳本出錯 - 查看Chrome控制檯的錯誤 – 2012-01-31 17:56:49

+3

是否嘗試用「<」替換「<」,例如:for(var i = 0; i Akhil 2012-01-31 17:57:04

回答

4

這裏有一個錯誤,其中一些HTML不太過來正確。這會阻止您的alert到達。

for(var i = 0; i &lt; len; i++) { 

將其更改爲:

for(var i = 0; i < len; i++) { 
0

您的for循環 「特殊字符」 HTML。

變化:

for(var i = 0; i &lt; len; i++) { 

要:

for(var i = 0; i < len; i++) { 

我這樣做,它爲我工作。

3

這條線:

for(var i = 0; i &lt; len; i++) { 

你有一個HTML實體,而不是小於號。修復它,它會工作。

側面說明:

function(x) { return (x > 100) ? true : false; } 

這是書面的冗餘部門的部門。改爲使用return x>100;

+0

尊敬的冗餘部門:您的代碼較短,但拼寫出長遠的方式使它更多對我來說可讀。 – DOK 2012-01-31 18:01:14

+0

真的,@DOK?我認爲相反是真實的。給每個人自己。 – 2012-02-04 23:53:24

0

我看到的唯一的事情是:for(var i = 0; i &lt; len; i++) {

這應該是:for(var i = 0; i < len; i++) {

公告了「<」,而不是&lt;

0

當您複製,有時粘貼你的HTML特殊字符。在這種情況下,您有& lt;而不是在for循環中使用<。改變它,它的作品。

經驗法則:在Javascript中,當行不存在工作是一個語法錯誤95%以上的時間