Я написал этот код и подумал, что он был успешным. Однако, когда я запустил его в некоторых тестах, я получил результат «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это строка, как сказано в одном решении, но я все еще не могу заставить ее работать. Пожалуйста, помогите!