1.当不想用大量的if(){}else{}去给一个变量赋值的时候
例如:
if(value==='13'){
return '小石'
}else if(value==='18'){
return '小明'
}else if(value==='20'){
return '小红'
}else if(value==='17'){
return '小王'
}else if(value==='21'){
return '小马'
}else if(value==='30'){
return '小张'
}else{
return value
}
一种解法:把值转换为对象,利用对象的属性方法结合switch进行赋值
let obj = {
'小石': '13',
'小明': '18',
'小红': '20',
'小王': '17',
'小马': '21',
'小张': '30'
}
function getValue(obj, params) {//输入年纪
let str = '';
for (const [key, value] of Object.entries(obj)) {
switch (params) {
case value:
str = key
break;
default:
str = params
}
return str;
}
}
console.log(getValue(obj, '13')) //小石
2.当有两个值匹配时,用逗号分隔
let obj = {
'小石': '13',
'小明': '18',
'小红': '20',
'小王': '17',
'小马': '21',
'小张': '13'
}
function getValue(obj, params) {//输入年纪
let str = '';
let arr = []
for (const [key, value] of Object.entries(obj)) {
if(params===value){
arr.push(key)
}
}
str = arr.length>0?arr.join(','):params
return str
}
console.log(getValue(obj, '13'))//小石,小张