簡體   English   中英

Javascript:如何檢查 object 中是否存在值

[英]Javascript: How to check if a value exists in an object

我有一組 object

var arrObj=[
            {"a" : "11", "b":"Test1"},
            {"a" : "22", "b":"Test2"},
            {"a" : "33", "b":"Test1"},
            {"a" : "44", "b":"Test3"}
           ];

我想檢查 object 中是否存在“11”。 如果存在,那么它應該返回鍵“b”的值,即“Test1”。 鍵“a”中的值始終是唯一的。

Array.prototype.find正是你要找的 - 在這種情況下它比Array.prototype.filter更好,因為它會在找到第一個匹配時立即停止迭代

 const data = [ {"a" : "11", "b":"Test1"}, {"a" : "22", "b":"Test2"}, {"a" : "33", "b":"Test1"}, {"a" : "44", "b":"Test3"} ] console.log (data.find(x => xa == 11).b) // Test1 

此代碼將過濾您的數組。

 var arrObj=[ {"a" : "11", "b":"Test1"}, {"a" : "22", "b":"Test2"}, {"a" : "33", "b":"Test1"}, {"a" : "44", "b":"Test3"} ]; var newArrObj = arrObj.filter(function(obj) { return obj.a == 11; }) console.log(newArrObj); 

只使用數組方法可以解決這個問題。 可以使用filterfindfindIndex方法。

下面是使用findIndex的片段。 如果元素存在於數組中,它將返回對象的索引,否則返回-1

 var arrObj = [{ "a": "11", "b": "Test1" }, { "a": "22", "b": "Test2" }, { "a": "33", "b": "Test1" }, { "a": "44", "b": "Test3" } ]; var m = arrObj.findIndex(function(item) { return item.a === "11"; }); console.log(m) 

我希望這段代碼是你想要的:

var checkAndReturn =function (arr, n){
        for(let i = 0; i < arr.length; i++){
            if(arr[i]["a"] === n) return arr[i]["b"];
        }
}

用它:

checkAndReturn(arrObj, "11");

只是使用循環和檢查,希望這段代碼適合你!

arrObj.forEach(function(a) {
    a = Object.keys(a).map(function(key){
        return a[key];
    });

    a.forEach(function(v2, k2, d){

        if(d[0] == 11) {
            console.log(d[1]);
        }
    });
});

您可以使其成為具有箭頭功能的單線。

 var arrObj=[ {"a": "11", "b":"Test1"}, {"a": "22", "b":"Test2"}, {"a": "33", "b":"Test1"}, {"a": "44", "b":"Test3"} ]; console.log(arrObj.filter(obj => obj.a == 11))

這是JavaScript對象數組中IDFind對象的可能重復

所以,看看那個帖子,這應該為你做。

var result = $.grep(arrObj, function(e){ return e.a == '11'; });
console.log(result[0].b);

你可以為第一行創建一個函數並調用它傳遞你正在尋找的Id。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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