#javascript #html #css
#javascript #HTML #css
Вопрос:
Моей первоначальной проблемой было сохранить только имя файла из полного пути к объекту, и я нашел ответы на это в Интернете, но у меня возникла проблема с сохранением того же самого в свойстве объекта.
Вот фрагмент кода, который я написал. Надеюсь, моя проблема будет ясна.
let song = {
name: document.getElementById('title').value,//Line 1
artist: document.getElementById('yr').value,//Line 2
path: function () {//Line 3
var filename = fullPath.replace(/^.*[\/]/, '');
return filename;
}
Весь этот код находится внутри функции, которая вызывается, и пользователю предлагается выбрать файл со своего компьютера. Теперь, в чем моя проблема в строке 3, мне нужно сохранить имя файла только из полного пути (пример: ‘example.mp3’), внутри свойства ‘path’ объекта ‘song’.
Это то, что сохранялось в «пути» после запуска кода-
Пожалуйста, помогите мне в решении этой проблемы. Спасибо!
Комментарии:
1. Если вы определяете
path
как функцию, то в какой-то момент вам нужно выполнить эту функцию с()
, чтобы получить доступ к ее возвращаемому значению. В настоящее время вы видите его как функцию в возвращаемом объекте objected, потому что именно так вы его определили.
Ответ №1:
Вам нужно применить ()
для выполнения вашей функции. Но вы можете упростить его еще больше, просто присвоив значение your replace()
напрямую, например:
let song = {
name: document.getElementById('title').value,//Line 1
artist: document.getElementById('yr').value,//Line 2
path: fullPath.replace(/^.*[\/]/, '')
};
Если вы намерены использовать функцию так, как вы ее определили, вы можете сделать это:
let song = {
name: document.getElementById('title').value,//Line 1
artist: document.getElementById('yr').value,//Line 2
path: function () {//Line 3
var filename = fullPath.replace(/^.*[\/]/, '');
return filename;
}()
};
Обратите внимание на лишнее ()
после определения path
функции.
Комментарии:
1. Да, хорошо, я только что попробовал это, и это легко сработало, большое спасибо @Marc!!!