javascript中特定键的返回值?
我有一个对象,数字作为键,图像路径作为值。我从所选单选按钮的组合中获取数字。例如1111或2111,如果每个组中的第一个单选按钮全部选中,或第二个单选按钮全部选中,则第一个单选按钮全部选中。我想在对象中搜索一个键1111,然后如果它存在,返回它的值,这将是一个图像路径。我可以成功地找到对象是否有匹配的键,但如何仅返回该键的值?对于1111,我需要返回“my/image/path1”。以下是我到目前为止的情况:javascript中特定键的返回值?,javascript,jquery,Javascript,Jquery,我有一个对象,数字作为键,图像路径作为值。我从所选单选按钮的组合中获取数字。例如1111或2111,如果每个组中的第一个单选按钮全部选中,或第二个单选按钮全部选中,则第一个单选按钮全部选中。我想在对象中搜索一个键1111,然后如果它存在,返回它的值,这将是一个图像路径。我可以成功地找到对象是否有匹配的键,但如何仅返回该键的值?对于1111,我需要返回“my/image/path1”。以下是我到目前为止的情况: var array = []; var imgs = { 1111:
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-这很好,因为key0
的对象没有属性。工作如预期!这很有效,谢谢。所以object[key]总是返回keys值吗?@jfoutch yes,myobject.mykey
相当于myobject[“mykey”]
我希望我知道这一点,我就永远不需要发布这个问题了哈!每天学点东西。谢谢