如果条件在Chrome扩展程序中无效,则为Javascript

时间:2014-08-07 02:07:46

标签: javascript google-chrome-extension

我有这段代码:

if (Array.length === maxArrayLength) {
        alert("test1234");
        Array= [];
    }

当数组Array的长度等于变量maxArrayLength时,它应该显示一条消息,但它没有做任何事情。

如果我将maxArrayLength替换为2或其他号码,则可以正常使用。

maxArrayLength中有一个值,因为当我在console.log(maxArrayLength);语句之前(及之后)if时,我得到一个值。

如果有帮助,这是Chrome扩展程序。 maxArrayLength来自chrome.local.storage

chrome.storage.sync.get('maxArray', function (items) {
    maxArray = items.maxArrayLength;
    console.log(maxArrayLength);
});

这里的console.log也有效。我很难过。怎么了? 好像if语句无法访问maxArrayLength变量......?

2 个答案:

答案 0 :(得分:2)

针对typeof(maxArrayLength)检查typeof(Array.length)

使用===您不仅要说这些值是相同的,还要说数据类型。

例如:

"3" == 3 // true
"3" === 3 // false

答案 1 :(得分:1)

如果我理解你的问题,那么你只需要将变量maxArrayLength的值与Array.length进行比较,所以使用==运算符代替===。

e.g。

<!DOCTYPE html>
<html>
 <body>

 <p>Click the button to create an array, then check it's length.</p>

 <button onclick="myFunction()">Try it</button>

 <p id="demo"></p>

 <script>
 function myFunction() {
    var fruits = ["Banana", "Orange", "Apple", "Mango"];        
    var maxArrayLength= 4;

   if (fruits.length == maxArrayLength){
     alert("Array length equals maxArrayLength");
   }

}
</script>

</body>
</html>