我有这段代码:
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
变量......?
答案 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>