Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数中的映射循环javascript未返回所需值_Javascript - Fatal编程技术网

函数中的映射循环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这取决于提取是否来自类