我有这个数组
var getDay: [
{ DayValue: '10D', DayDisplay: '10' },
{ DayValue: '20D', DayDisplay: '20' },
{ DayValue: '30D', DayDisplay: '30' }
]
现在有另外一个代码如下。
var b_day = getDayDetails('10D')
这将获得10D并检查getDay数组中相应的DayDisplay值。
我希望b_day的最终值为' 10'
同样,如果var b_day = getDayDetails('20D')
,我希望b_day的最终值为' 20'
有人可以告诉我如何实现这个目标吗?
答案 0 :(得分:2)
使用过滤器:
function getDayDetails (input) {
if(getDay.length) {
var v = getDay.filter(function(element) {
return element.DayValue === input;
});
if(v.length) return v[0].DayDisplay;
else return null;
} else return null;
}
答案 1 :(得分:1)
您应该使用_.find
来实现此目标
function getDayDetails(data){
return _.find(getDay,{'DayValue':data});
}
function getDayDisplayDetails(data){
return _.find(getDay,{'DayDisplay':data});
}
答案 2 :(得分:1)
简单:
function findDay(dayParam) {
const day = getDay.find(day => day.DayValue == dayParam);
return day && day.DayDisplay;
}
答案 3 :(得分:0)
如果我理解你的问题,有几种方法可以做到。可能最简单的(当然不是最好的)方式只是一个FOR循环遍历数组并在每个索引处检查对象的属性,直到你找到正确的。
这样的事情:
function getDayDetails (v) {
for (var i in getDay) {
if (getDay[i].DayValue === v) return getDay[i].DayDisplay;
}
}
这可能会有点整理,但这似乎是你想要的那种。