使用Javascript数组将键和值与某个变量匹配的正确方法是什么?
我试图在javascript中创建一个函数,以获得与外部变量匹配的值 我创建了一个键/值数组。然后我做了一个函数,它将检查一个值是否与一个变量匹配。然后我将返回这个值的键使用Javascript数组将键和值与某个变量匹配的正确方法是什么?,javascript,arrays,key,Javascript,Arrays,Key,我试图在javascript中创建一个函数,以获得与外部变量匹配的值 我创建了一个键/值数组。然后我做了一个函数,它将检查一个值是否与一个变量匹配。然后我将返回这个值的键 function findNumberFromMonth($data) { var obj = { 01: "Jan", 02: "Feb", 03: "Mar", 04: "Apr", 05: "May", 06: "Jun", 07: "Jul", 0
function findNumberFromMonth($data)
{
var obj = {
01: "Jan",
02: "Feb",
03: "Mar",
04: "Apr",
05: "May",
06: "Jun",
07: "Jul",
08: "Aug",
09: "Sep",
10: "Oct",
11: "Nov",
12: "Dec"
}
for(var element in obj)
{
if($data == element.value )
{
$number = element.key
}
return $number;
}
}
如果我将$data初始化为“Jan”,则预期输出为“01”
但我只有一个未定义的对象。
我可以如何处理
感谢您的回复。如果您想将月份名称映射到月份编号,则您的对象是向后的:
function findNumberFromMonth($data)
{
var months = {
"Jan": "01",
"Feb": "02",
"Mar": "03",
// ...
};
return months[$data];
}
你可以这样做
var obj={
01:“一月”,
02:“二月”,
03:“三月”,
04:“四月”,
05:“五月”,
06:“六月”,
07:“七月”,
08:“八月”,
09:“9月”,
10:“10月”,
11:“11月”,
12:“12月”
}
var key=Object.keys(obj)[Object.values(obj.indexOf(“Jun”)]
console.log(key)
这可以通过查找
和对象来完成。条目
:
函数findNumberFromMonth(数据){
常数月={
01:“一月”,
02:“二月”,
03:“三月”,
04:“四月”,
05:“五月”,
06:“六月”,
07:“七月”,
08:“八月”,
09:“9月”,
10:“10月”,
11:“11月”,
12:“12月”
};
返回Object.entries(months.find)([key,val])=>data==val[0];
}
console.log(findnumberfromfommonth('Oct'))
当您使用for(让x在obj中)
x
是对象的键
函数findnumberfromfommonth($data)
{
var obj={
01:“一月”,
02:“二月”,
03:“三月”,
04:“四月”,
05:“五月”,
06:“六月”,
07:“七月”,
08:“八月”,
09:“9月”,
10:“10月”,
11:“11月”,
12:“12月”
}
for(obj中的var键)
{
如果($data==obj[key])返回key;
}
}
console.log(findNumberFromMonth('Jan'))代码>如果同时需要键和值,请使用object.entries并对其进行迭代
const data=“Feb”;
常量对象={
“01”:“Jan”,
“02”:“二月”,
“03”:“三月”,
“04”:“4月”,
“05”:“五月”,
“06”:“六月”,
“07”:“七月”,
“08”:“8月”,
}
for(让Object.entries(obj))的[key,value]{
如果(数据===值)
{
控制台日志(键);
}
}
在if语句中分配$number变量。但是在out-of-if语句中返回它。必须将返回行移到if语句,若并没有返回任何内容,则可以返回false值
function findNumberFromMonth($data) {
var obj = {
01: "Jan",
02: "Feb",
03: "Mar",
04: "Apr",
05: "May",
06: "Jun",
07: "Jul",
08: "Aug",
09: "Sep",
10: "Oct",
11: "Nov",
12: "Dec"
}
for (var key in obj) {
if ($data === obj[key])
return key;
}
return false;
}
console.log(findNumberFromMonth('Mar'));
没有价值,就是没有对象工作。1) 元素
将是1
、2
等,它没有值
属性。2) 无论if
语句如何,在循环的第一次迭代中,您总是return
ing。谢谢,这就是我想要的方式。