[英]Why doesn't my code work for finding if a value exists in an array in JavaScript?
我正在嘗試查找數組中是否存在值,然后將其添加到第三個數組中。 我正在使用JavaScript。
這是我的聲明:
var testArray1 = ["a", "b", "c", "d", "e"];
var testArray2 = [];
這是我的代碼段:
var x = testArray1.length;
var y = 0;
do {
if(typeof testArray1[y] == 'a') {
console.value += "A doesn't exist.";
}
else {
console.value += "A does exist."
}
y++;
while (y < x);
由於某種原因(即使我輸入(anything greater than 0)
而不是x
它總是表示A does exist.
有人可以指出我的代碼錯誤之處嗎?
謝謝!
為什么我的代碼無法用於查找JavaScript數組中是否存在值?
因為typeof x
返回值的類型 (根據規范)。 typeof testArray1[y]
將始終為數組中的每個值返回"string"
,因為每個值都是一個字符串。 它永遠不會返回'a'
。
看看查找項目是否在JavaScript數組中的最佳方法? 以及如何檢查數組是否在JavaScript中包含對象? 學習如何測試數組中是否存在值。
您可以自己簡化這種方式。
testArray1.indexOf('a')
將返回該字母在數組中的索引。 如果不在數組中,它將返回-1
if(testArray1.indexOf('a') != -1){
// it is in the array
}else{
// it's not in the array
}
對我來說,我會設法解決這樣的問題。
var _testArray1 = ["a", "b", "c", "d", "e"];
var _testArray2 = [];
for (var _i = 0; _i < _testArray1.length; _i++) {
if (_testArray1[_i] === "a") {
_testArray2.push(_testArray1[_i]);
}
// other logic;
};
這樣,您可以將迭代計數變量保持在其自己的范圍內,並將找到的數組結果附加到已聲明的變量中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.