我试图在javascript中创建一个函数,以便获取与外部变量匹配的值。
我创建了一个键/值数组。然后,我制作了一个函数,该函数将检查值是否与变量匹配。然后,我将返回此值的键。
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”。
但是我只有一个未定义的对象。 我该如何处理?
感谢您的答复。
答案 0 :(得分:0)
如果您要做的是将月份名称映射到月份编号,则您的对象向后:
catch
答案 1 :(得分:0)
您可以这样做。
function findNumberFromMonth($data)
{
var months = {
"Jan": "01",
"Feb": "02",
"Mar": "03",
// ...
};
return months[$data];
}
答案 2 :(得分:0)
这可以通过 try (Stream<String> lines = Files.lines("C:\\Users\\User\\Desktop\\new_1.txt")) {
Optional<String[]> studentGradesOpt =
lines.map(line -> line.split(","))
.filter(row -> row[0].equalsIgnoreCase(name))
.findFirst();
studentGradesOpt.ifPresent(grades -> calculate(grades));
if (!studentGradesOpt.isPresent()) {
System.out.println("Couldn't find student " + name);
}
}
和find
完成:
Object.entries
答案 3 :(得分:0)
使用for(let x in obj)
时x
是对象的key
。 for...in.
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;
}
}
console.log(findNumberFromMonth('Jan'));
答案 4 :(得分:0)
如果同时需要键和值,请使用object.entries并对其进行迭代。
const data = "Feb";
const obj = {
"01": "Jan",
"02": "Feb",
"03": "Mar",
"04": "Apr",
"05": "May",
"06": "Jun",
"07": "Jul",
"08": "Aug",
}
for (let [key, value] of Object.entries(obj)) {
if(data === value )
{
console.log(key);
}
}
答案 5 :(得分:0)
您在if语句中分配$ number变量。但是从if语句中返回它。您必须将返回行移至if语句,如果未返回任何内容,则可以返回假值。
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'));