Tips for verifying if a field is empty with javascript

I am trying to use JavaScript to determine if a field is empty.

Here is the scenario: If the result.title field is not available or empty, I need to display a default title.

These are the conditions:

- If the result.title is available, show that as the title.
- If result.title is empty and name is present, show the string "${name} matches".
- If result.title is empty and name is not present, show the string "default title".

This is what I have attempted so far:

const defaultTitle = result?.title ?? "default title";

However, this does not account for an empty title field and whether the name is present or not.

Can someone please assist me with this? Thank you.

Thank you!

Answer №1

To determine if a string is empty (meaning undefined, null, or "") you can use the following code:

!str || str === ''

Here, the variable str represents a value that could be undefined, null, or a string.

In this scenario, I have altered the logic to check for the presence of a string rather than its emptiness, based on the context provided in your example.

const is_present = (str) => str && str !== '';

const get_title = (title, name) =>
  is_present(title) ? title :
  is_present(name)  ? name + ' matches' :
    'default title';

console.log("null, 'Foo':      " + get_title(null, 'Foo'));
console.log("'Bar', 'Foo':     " + get_title('Bar', 'Foo'));
console.log("'Bar', null:      " + get_title('Bar', null));
console.log("'', 'Foo':        " + get_title('', 'Foo'));
console.log("'', '':           " + get_title('', ''));
console.log("{}?.title, 'Foo': " + get_title({}?.title, 'Foo'));

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Having trouble implementing express-unless to exclude specific routes from requiring authentication

Being relatively new to JavaScript and Node.js, I decided to incorporate express-jwt for authenticating most of my APIs. However, I wanted to exclude certain routes like /login and /register from authentication. After exploring the documentation for expr ...

Switching from module.exports in Javascript to Typescript format

My Node-express code currently uses module.exports to export functions. As I am converting the code to TypeScript, I need to find out how to replace module.exports in typescript. Can you help me with this? ...

Is there a way to create a Captcha image from text using JavaScript in an HTML document?

As I work on creating a registration web page, ensuring security is key. That's why I'm looking for a way to generate captcha images for added protection. Any suggestions on how I can transform text into captcha images? ...

Guide to setting up a trigger/alert to activate every 5 minutes using Angular

limitExceed(params: any) { params.forEach((data: any) => { if (data.humidity === 100) { this.createNotification('warning', data.sensor, false); } else if (data.humidity >= 67 && data.humidity <= 99.99) { ...

What could be the reason for Google Maps producing a static map instead of a dynamic one?

Here is a snippet of code that showcases Google Map integration: <div class="col span_1_of_3 gMapHolder"> </div> Utilizing JQuery: $(document).ready(function () { alert($(".mapUse").text()); var k = $(".mapUse").text(); var embed ...

Console frozen when executing an async JavaScript script to populate a Mongoose database

I'm currently delving into a personal project and aiming to unravel the intricate logic that is preventing my Node JS process from closing after executing populateTransactions(). My assumption is that the issue lies in not properly closing the DB con ...

The children component is not recognizing the function being passed through this.props.children, resulting in an

Looking for a solution that involves passing a function to this.props.children? Check out the code snippet below: updateBarTitle(barTItle){ this.setState({barTItle}); } render(){ const children = React.Children.map(this.props.children, function (chi ...

What is the purpose of using the '@attributes' in the code while converting XML to JSON?

I have come across various iterations of the xml2json code that utilize the '@attributes' method, but I am wondering why not simply use obj[attribute.nodeName] = attribute.nodeValue instead? // Converting XML to JSON function xmlToJson(xml) { ...

Is there a more efficient method to tally specific elements in a sparse array?

Review the TypeScript code snippet below: const myArray: Array<string> = new Array(); myArray[5] = 'hello'; myArray[7] = 'world'; const len = myArray.length; let totalLen = 0; myArray.forEach( arr => totalLen++); console.log(& ...

What is the method to retrieve the index or row number using the map function in Google Sheets?

Currently, I am attempting to retrieve the row number where the row meets certain criteria. However, I seem to be encountering an issue: Instead of getting the desired result, I am obtaining an array like this: [,,2] Although I have attempted using filter ...

Is it possible to import a class from a different project or module in TypeScript?

I am attempting to modify the build task in Typescript within this specific project: https://github.com/Microsoft/app-store-vsts-extension/blob/master/Tasks/app-store-promote/app-store-promote.ts I am looking to incorporate an import similar to the one be ...

Reload the precise URL using JavaScript or jQuery

I need a solution to refresh the current URL after an ajax success. I attempted the following methods: location.reload() history.go(0) location.href = location.href location.href = location.pathname location.replace(location.pathname) However, I encounter ...

Verify if the date and time in string format is the exact same as noon

In my data collection, there are multiple objects each containing a specific date and time value: [ {dt: "2019-11-29 12:00:00"}, {dt: "2019-11-29 3:00:00"}, {dt: "2019-11-29 6:00:00"}, {dt: "2019-11-30 12:00:00"}, {dt: "2019-11-30 6:00:00"} ] M ...

What is the best way to generate a cookie in svelte and retrieve it later on?

I have been working on implementing a cookie in Svelte (while also using Svelte Kit) for the purpose of storing a JWT Token used in authentication processes. I initially tried using pure JavaScript code like getCookie() and setCookie(), following the gui ...

The repairDatabase function cannot be found in the Collection.rawDatabase() method

Seeking guidance on repairing a database within Meteor. Currently executing the following code: Meteor.methods({ 'repairDB'(){ Users.rawDatabase().repairDatabase(); return true; } }); Encountering the following error: I20170630-18: ...

How can I display all values in Meteor Blaze by iterating through a mongo cursor?

Can someone please guide me in the right direction? I have an application that uploads a CSV file to MongoDB and then displays it within the Meteor framework. I am facing an issue where I am subscribing to the data in the Template.onCreated function, but I ...

What is the best way to trigger a function in the parent component using an event from the child component?

I'm currently immersed in learning React and am tackling the challenge of creating a game where the cards shuffle with each attempt. The card array and shuffle function are located in a parent component (using map to display the cards), while the retr ...

Tips for converting the Instagram cURL post request to a JavaScript request

I am attempting to convert the code I received from Instagram into a token. The code provided in the Instagram DOCS uses a curl request, but I would like to implement it using JavaScript instead. Here is how the original code looks: curl -X POST &bsol ...

transferring data between PHP frames

Having a PHP variable within a frame from a frameset that must be passed to two other frames at the same time is proving to be a challenge. One of those frames refreshes every 5 seconds, making it easy to extract the variable from the URL. The other frame, ...

Error encountered during TypeScript execution - 'undefined'

I'm encountering errors while trying to instantiate a basic class named Point using HTML and TypeScript. Whenever I click on the hyperlink, I receive the following error messages within each try/catch block: Errors: Cannot read property 'Empty ...