簡體   English   中英

javascript中特定鍵的返回值?

[英]Return value for a specific key in javascript?

我有一個對象,其中數字作為鍵,圖像路徑作為值。 我從選定的單選按鈕組合中獲取數字。 例如1111或2111,如果每個組中的第一個單選按鈕都被選中,或者第二個單選按鈕則全部被選中。 我想在對象中搜索1111鍵,然后如果它存在,則返回其值,該值將是圖像路徑。 我可以成功找到對象是否具有匹配的鍵,但是如何僅返回該鍵的值? 對於1111,我將需要返回“ my / image / path1”。 這是我到目前為止的內容:

    var array = [];
var imgs = {
    1111: "my/image/path1",
    2111: "my/image/path2",
    1211: "my/image/path3",
    1311: "my/image/path4"
}

$(':radio').change(function() {
    $(":radio:checked").each(function(i, e)  {
    array[i] = $(this).val();
    });
        var total = 0;
        $.each(array,function() {
            total += this;
        });
        matchKey = parseInt(total, 10);
         // here is where I'm stuck
        if (imgs contains the key matchKey)) {
            console.log(value for matchKey);
        }

});

您可以使用普通的javascript:

if (typeof imgs[matchKey] !== "undefined") { // Check if the key exists
    var value = imgs[matchKey];
}

您可以使用方括號表示法

if (imgs[matchKey]) {
    console.log(imgs[matchKey]);
}

注意:這假設您的任何都不會為假(例如0 ,空白字符串, false等)。 我認為這很好,就像您說的那樣,您的值始終是非空路徑。 但是警告仍然有效。 如果您的價值觀可能是虛假的,請查看@Florian答案。

您可以使用Object.keys(imgs)檢索僅包含鍵的數組,然后執行簡單的測試以查看您要查找的鍵是否包含在數組中:

if (Object.keys(imgs).indexOf('1111') > -1)

您可以使用$.each遍歷數組imgs中的每個元素來獲取鍵值對。

var imgs = {
    1111: "my/image/path1",
    2111: "my/image/path2",
    1211: "my/image/path3",
    1311: "my/image/path4"
}


$.each(imgs,function(key,value)
{
    if(key === 1111)
     return value; // This would give you the path "my/image/path1"

});

暫無
暫無

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

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