💾valueToString()

convert a value to string.

JSvaluetypeconversion ⟩ valueToString()

const { isObject } = require('./isObject.js');

// ⭐️ valueToString(value)
function valueToString(value){

    const str = String(value);

    // ------------ primitive ------------
    
    if (!isObject(value)) {
        if (typeof value === 'string') return `'${str}'`;
        return str;
    }

    // ------------ object ------------

    // array
    if (Array.isArray(value)) return '[' 
        + value.map(x => valueToString(x)).join(',')
        + ']';
    
    // Set
    if (str === '[object Set]') 
        return `{${[...value].map(x => valueToString(x)).join(', ')}}`;
    
    // Map
    if (str === '[object Map]') 
        return `{${[...value].map(p => `${p[0]}${valueToString(p[1])}`).join(', ')}}`;
    
    // function: return its code
    if (typeof value === 'function') return value.toString();
    
    // other object, try to get its methods as well.
    let result = [];
    
    for (let key in value) {
        result.push(`${key}: ${valueToString(value[key])}`);
    }
    
    return `{${result.join(', ')}}`;
}

// export
module.exports = { valueToString };

💈範例:

Last updated

Was this helpful?