簡體   English   中英

為什么我的代碼無法用於查找JavaScript數組中是否存在值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM