Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中特定键的返回值?_Javascript_Jquery - Fatal编程技术网

javascript中特定键的返回值?

javascript中特定键的返回值?,javascript,jquery,Javascript,Jquery,我有一个对象,数字作为键,图像路径作为值。我从所选单选按钮的组合中获取数字。例如1111或2111,如果每个组中的第一个单选按钮全部选中,或第二个单选按钮全部选中,则第一个单选按钮全部选中。我想在对象中搜索一个键1111,然后如果它存在,返回它的值,这将是一个图像路径。我可以成功地找到对象是否有匹配的键,但如何仅返回该键的值?对于1111,我需要返回“my/image/path1”。以下是我到目前为止的情况: var array = []; var imgs = { 1111:

我有一个对象,数字作为键,图像路径作为值。我从所选单选按钮的组合中获取数字。例如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);
        }

});

您可以通过使用
$遍历数组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"

});

您可以通过使用
$遍历数组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"

});

在您的情况下,您可以使用纯javascript:

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

在您的情况下,您可以使用纯javascript:

if (typeof imgs[matchKey] !== "undefined") { // Check if the key exists
    var value = imgs[matchKey];
}
您可以使用Object.keys(IMG)检索一个仅包含键的数组,然后执行一个简单的测试,以查看您要查找的键是否包含在数组中:

if (Object.keys(imgs).indexOf('1111') > -1)
您可以使用Object.keys(IMG)检索一个仅包含键的数组,然后执行一个简单的测试,以查看您要查找的键是否包含在数组中:

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

可以使用方括号表示法

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

注意:这假设您的值都不会为假(例如,
0
,空白字符串,
false
等)。我认为这很好,正如你所说,你的价值观总是非空路径。但警告依然存在。如果您的值可能是错误的,请检查@Florian answer。

您可以使用方括号表示法

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

注意:这假设您的值都不会为假(例如,
0
,空白字符串,
false
等)。我认为这很好,正如你所说,你的价值观总是非空路径。但警告依然存在。如果您的值可以合法地被伪造,请检查@Florian answer。

使用括号表示法:
If(imgs[matchKey]){…}
。每个单选按钮的键和值是否唯一?使用括号表示法:
If(imgs[matchKey]){…}
。每个单选按钮的键和值都是唯一的吗?当
matchKey==0
@JacquesMarais-这很好,因为键为
0
的对象没有属性。工作如预期!这很有效,谢谢。所以object[key]总是返回keys值吗?@jfoutch yes,
myobject.mykey
相当于
myobject[“mykey”]
我希望我知道这一点,我就永远不需要发布这个问题了哈!每天学点东西。感谢当
matchKey==0
@JacquesMarais时,这将返回false-这很好,因为key
0
的对象没有属性。工作如预期!这很有效,谢谢。所以object[key]总是返回keys值吗?@jfoutch yes,
myobject.mykey
相当于
myobject[“mykey”]
我希望我知道这一点,我就永远不需要发布这个问题了哈!每天学点东西。谢谢