JS错误:stringtime.match不是函数吗?同时尝试将持续时间从“ 2h 3min”字符串转换为数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS错误:stringtime.match不是函数吗?同时尝试将持续时间从“ 2h 3min”字符串转换为数字相关的知识,希望对你有一定的参考价值。
我编写了此代码,并认为它是成功的。但是,当我在某些测试中运行它时,得到的结果是“ stringtime.match不是函数”。
[我正在尝试编写代码,在其中创建一个turnHoursToMinutes()函数,该函数接收一个数组作为参数,并且-用分钟替换每部电影的持续时间信息。我还需要返回一个包含有关电影的所有信息的新数组,这意味着我不应该修改原始数组。
let movies = [
title: 'The Shawshank Redemption',
year: '1994',
director: 'Frank Darabont',
duration: '2h 22min',
genre: ['Crime', 'Drama'],
rate: '9.3'
,
title: 'The Godfather',
year: '1972',
director: 'Francis Ford Coppola',
duration: '2h 55min',
genre: ['Crime', 'Drama'],
rate: '9.2'
,
title: 'The Godfather: Part II',
year: '1974',
director: 'Francis Ford Coppola',
duration: '3h 22min',
genre: ['Crime', 'Drama'],
rate: '9.0'
]
function turnHoursToMinutes(minutesArr)
let durationArr = minutesArr.map(currentItem =>
let stringtime = currentItem.duration;
let strnumbers = stringtime.match(/\d+/g);
let numbers = strnumbers.map(Number);
let minutes = 0;
if (stringtime.includes("h") && stringtime.includes("min"))
minutes = (numbers[0] * 60) + numbers[1];
else if (stringtime.includes("h"))
minutes = numbers[0] * 60;
else if (stringtime.includes("min"))
minutes = numbers[1];
currentItem.duration = minutes;
return ...currentItem;
);
return durationArr;
console.log(turnHoursToMinutes(movies));
我在网上寻找解决方案,并尝试将一些建议应用于我的代码,但是我无法使其起作用:(另外,我以为我返回了一个新数组,但是仍然出现错误,表明我没有返回新数组...
我确保stringtime是一个字符串,就像一个解决方案所说的那样,但是我仍然无法使其正常工作。请帮助!
检查this,如下所示:
match()方法检索将字符串与正则表达式匹配的结果。
因此,如果您传递的内容不是字符串,或者只是不放置具有属性duration
的对象,它将引发错误。
您必须检查let stringtime = currentItem.duration;
是否为空。
以上是关于JS错误:stringtime.match不是函数吗?同时尝试将持续时间从“ 2h 3min”字符串转换为数字的主要内容,如果未能解决你的问题,请参考以下文章
jquery.min.js:'jQuery.Deferred 异常:$(...).dialog 不是函数'错误
Discord.js 错误“TypeError:channel.updateOverwrite 不是函数”
Discord.js 使用画布制作图像会引发错误 Canvas.createCanvas 不是函数
strophe.flxhr.js - 类型错误:this.func.prependArg 不是函数
Backbone.js 视图是不是需要 jQuery 或 Zepto? (或者:为啥我会收到“未捕获的类型错误:未定义不是函数”?)