简体   繁体   中英

How to get the filename from the full path and store in an object property in Javascript?

My initial problem was to store only the filename from the full path on an object and I did find the answers to that online but I had problem storing the same in a property of an object.

Here is a piece of code that I have written. Hopefully my problem would be clear.

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;
                  }

This whole code is inside a function which is called and the user is asked to choose a file from his computer. Now what my problem is in Line3,I need to store the filename only from the fullpath (Example: 'example.mp3'), inside the 'path' property of the object 'song'. This is what was getting saved in 'path' once I run the code-

Output image

Please help me in solving this . Thanks!

You need to apply () to execute your function. But you can simplify it further by just assigning the value of your replace() directly, like this:

let song = {
     name: document.getElementById('title').value,//Line 1
     artist: document.getElementById('yr').value,//Line 2
     path: fullPath.replace(/^.*[\\\/]/, '')
};

If you're committed to using the function in the way you defined it, you can do this:

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;
     }()
};

Note the extra () after the path function definition.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM