Search code examples
javascriptif-statementnulltry-catch

Javascript object properties - create property if not exist


I'm trying to execute this piece of code in the most elegant way:

if (internalTableName in self.columnMap &&
    internalColumnName in self.columnMap[internalTableName]) {
    console.error('dupelicates');
}
else {
    try {
        self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
    } catch (err) {
        self.columnMap[internalTableName] = {};
        self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
    }
}

I could turn the try/catch block to:

if (internalTableName in self.columnMap &&
    internalColumnName in self.columnMap[internalTableName]) {
    console.error('dupelicates');
}
else {
    if (internalTableName in self.columnMap) {
        self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
    }
    else {
        self.columnMap[internalTableName] = {};
        self.columnMap[internalTableName][internalColumnName] = logicalColumnName;

    }
}

I was wondering if Javascript offers some operators for checking nullity that could make this logic be written in a more elegant way and less IF clauses.

Thanks


Solution

  • The common pattern is using the || operator:

    self.columnMap[internalTableName] = self.columnMap[internalTableName] || {};
    self.columnMap[internalTableName][internalColumnName] = logicalColumnName;