从数组中为传递的值获取相应的值
Get corresponding value from array for value passed
我有这个数组
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'
有人可以告诉我如何实现吗?
使用过滤器:
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;
}
如果我正确理解你的问题,有几种方法可以做到这一点。可能最简单(诚然不是最好)的方法就是一个 FOR 循环遍历数组并检查对象在每个索引处的属性,直到找到正确的那个。
像这样:
function getDayDetails (v) {
for (var i in getDay) {
if (getDay[i].DayValue === v) return getDay[i].DayDisplay;
}
}
这可能需要整理一下,但这似乎是您想要的。
您应该使用 _.find
来实现此目的
function getDayDetails(data){
return _.find(getDay,{'DayValue':data});
}
function getDayDisplayDetails(data){
return _.find(getDay,{'DayDisplay':data});
}
简单:
function findDay(dayParam) {
const day = getDay.find(day => day.DayValue == dayParam);
return day && day.DayDisplay;
}
我有这个数组
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'
有人可以告诉我如何实现吗?
使用过滤器:
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;
}
如果我正确理解你的问题,有几种方法可以做到这一点。可能最简单(诚然不是最好)的方法就是一个 FOR 循环遍历数组并检查对象在每个索引处的属性,直到找到正确的那个。
像这样:
function getDayDetails (v) {
for (var i in getDay) {
if (getDay[i].DayValue === v) return getDay[i].DayDisplay;
}
}
这可能需要整理一下,但这似乎是您想要的。
您应该使用 _.find
来实现此目的
function getDayDetails(data){
return _.find(getDay,{'DayValue':data});
}
function getDayDisplayDetails(data){
return _.find(getDay,{'DayDisplay':data});
}
简单:
function findDay(dayParam) {
const day = getDay.find(day => day.DayValue == dayParam);
return day && day.DayDisplay;
}