函数中的映射循环javascript未返回所需值
我有一个数组,其中包含如下所示的对象函数中的映射循环javascript未返回所需值,javascript,Javascript,我有一个数组,其中包含如下所示的对象 const arr = [ { value: -1, label: "None" }, { value: 24*60*60, label: "24 hours" }, { value: 7*24*60*60, label: "7 days" }, { value: 30*24*60*60,
const arr = [
{
value: -1,
label: "None"
},
{
value: 24*60*60,
label: "24 hours"
},
{
value: 7*24*60*60,
label: "7 days"
},
{
value: 30*24*60*60,
label: "1 month"
},
{
value: 90*24*60*60,
label: "3 months"
}
];
我有下面的“种类”功能,但它不返回值。谁能看出我做错了什么
下面是一个react方法
class Test extends Component {
......
getLabelFromValue(arr, value) {
arr.forEach((item) => {
if(item.value === value) {
return item.label;
}
});
}
const value = getLabelFromValue(arr, 86400); //value is equal to undefined
您是从forEach而不是外部函数返回的:
getLabelFromValue(arr, value) {
let label;
let done = false;
arr.forEach(item => {
if(item.value === value && !done) {
label = item.label;
done = true;
}
});
return label;
}
const value = getLabelFromValue(arr, 86400); //value is equal to undefined
我个人只会使用过滤器
arr.filter(item => item.value === value)[0]; // OR
arr.find(item => item.value === value);
您是从forEach而不是外部函数返回的:
getLabelFromValue(arr, value) {
let label;
let done = false;
arr.forEach(item => {
if(item.value === value && !done) {
label = item.label;
done = true;
}
});
return label;
}
const value = getLabelFromValue(arr, 86400); //value is equal to undefined
我个人只会使用过滤器
arr.filter(item => item.value === value)[0]; // OR
arr.find(item => item.value === value);
已经给出了如何使用.forEach构造解决问题的简短解释和解决方案
根据代码,getLabelFromValue应该只返回一个值。
因此,我将使用另一种方法->
find方法返回数组中满足提供的测试函数的第一个元素的值。否则将返回undefined
已经给出了如何使用.forEach构造解决问题的简短解释和解决方案
根据代码,getLabelFromValue应该只返回一个值。
因此,我将使用另一种方法->
find方法返回数组中满足提供的测试函数的第一个元素的值。否则将返回undefined
您的数组无效。值是字符串吗?getLabelFromValuearr,值{应该是函数getLabelFromValuearr,值{您正在使用forEach而不是map,并且没有返回任何frm getLabelFromValue?您需要什么作为输出?@lonut这取决于提取是否从类中获取。您的数组无效。值是字符串吗?getLabelFromValuearr,值{应该是函数getLabelFromValuearr,value{您使用的是forEach而不是map,并且没有返回任何frm getLabelFromValue?您需要什么作为输出?@lonut这取决于提取是否来自类