Javascript 如何发送多个道具并为每个道具执行功能?

Javascript 如何发送多个道具并为每个道具执行功能?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个场景,我将得到两个分钟格式的独立时间,因为我使用一个函数将其转换为不带分隔符的24小时格式,现在我使用momentjs将其转换为所需格式。一切都很完美,但问题是我在react native flat list中调用了函数两次,有没有办法在单个函数中完成这项工作 我的职能 DepartureTimeFormat (props){ let quotient = Math.floor(props / 60); let remainder = props % 6

我有一个场景,我将得到两个分钟格式的独立时间,因为我使用一个函数将其转换为不带分隔符的24小时格式,现在我使用momentjs将其转换为所需格式。一切都很完美,但问题是我在react native flat list中调用了函数两次,有没有办法在单个函数中完成这项工作

我的职能

DepartureTimeFormat (props){

        let quotient = Math.floor(props / 60);
        let remainder = props % 60;
        let journeyday = Math.floor(quotient / 24);
        let hour = quotient % 24;
        let minutes = remainder;
    
        let strHour = String(hour).length < 2 ? '0' + String(hour) : String(hour)
        let strMinutes = String(minutes).length < 2 ? '0' + String(minutes) : String(minutes)
    
        let departureTime = strHour + strMinutes
    
        return(
            <Text>
                {moment(departureTime, 'hmm').format('h:mm A')}
            </Text>
        )
    }
我得到的结果是晚上7点,这很好

对于到达时间,我再次使用

{this.DepartureTimeFormat(item.arrivalTime)}
因此,它输出为上午7:30,这也很好


那么,如何通过单个函数调用实现这一点呢?当我得到到达时间和离开时间的两个参数时,我正在执行两个函数调用,有没有办法将两个道具发送到函数中并映射它以返回两个输出?

您可以使用扩展语法为函数使用可变数量的参数,这样您就可以将日期作为数组来获取。然后,您可以使用
map
来迭代用于执行转换的映射

注意:用于零填充

代码:

…虽然它仍然只适用于一个参数


可能函数和变量应该有一个更好的名称,因为现在函数不仅仅是关于离开…

它可以工作,但是现在结果看起来是这样的,它首先在到达时间上运行并显示,然后在脱饱和时间上运行并显示?如何吐出输出<代码>预期时间:07:10am 12:00pm但结果类似于
结果:07:10am 12:00pm07:10am 12:00pm
它返回两个文本元素。这完全取决于它们如何渲染(css)。如果它们有最大宽度,并且以列方式显示,你可以得到这个…我理解这项工作,但这是唯一的方法吗?或者是否有单独返回输出的方法?它是单独返回输出的。返回值实际上是两个输出的数组。reactjs可以处理数组,但是您也可以从返回的数组中提取两个输出,并单独处理它。我不知道你说的“变通”是什么意思。明白了,谢谢你,在实现这一点的同时,我让列表中的每个孩子都应该有一个唯一的“键”,并且我非常确定我的平面列表有唯一的id。当我删除上述函数时,错误就会消失,有人知道为什么会发生这种情况吗?
{this.DepartureTimeFormat(item.arrivalTime)}
DepartureTimeFormat (...dates) {
    return dates.map(function (props) {
        let quotient = Math.floor(props / 60);
        let remainder = props % 60;
        let journeyday = Math.floor(quotient / 24);
        let hour = quotient % 24;
        let minutes = remainder;
    
        let strHour = String(hour).padStart(2, "0");
        let strMinutes = String(minutes).padStart(2, "0");
    
        let departureTime = strHour + strMinutes
    
        return(
            <Text>
                {moment(departureTime, 'hmm').format('h:mm A')}
            </Text>
        )
    });
}
this.DepartureTimeFormat(item.departureTime, item.arrivalTime)