How to input a same property into an array

That stack overflow thread is very informative.

If I understand correctly since ES6 there is an order (The traversal order of object properties in ES6) and on the stack overflow are numerous ways to re-sort the keys.

So JavaScript continues to "improve" itself to the point of no return :slightly_smiling_face:.

I used the Stack Overflow replies to come up with this;

    /**************************************************************************************************
    *
    * Description.  Create a new Object, by adding the properties of the old Object in order of the Array of 'keys'
    *               If required, add any remaining properties of old Object to new Object
    *
    * @param    {Object}        object          The object to operate on
    * @param    {Array}         keysInOrder     An Array of the keys required, in order to be added
    * @param    {boolean}       addAll          True if all properties of old Object to be added to new Object, false if only keys. Default is true
    *                                            in Array to be added
    *
    * @return   {Object}                        An Object with the properties in 'key' order of the provided Array, plus any other properties in
    *                                            original order
    *
    * @Example let orderedObject = orderObjectProperties({c: 1, a: 2, b: 1}, ['a', 'b'], false) becomes {a: 2, b: 1}
    */

    function orderObjectProperties(object, keysInOrder, addAll = true) {
        let newObject = {}
        // Add the new Object properties in order of 'keys' in Array
        for (const key of keysInOrder) {
            if (Object.keys(object).includes(key) && !Object.keys(newObject).includes(key))
                newObject[key] = object[key]

        }

        // Add any old Object properties not yet added, if required
        if (addAll) {
            for (const key of Object.keys(object)) {
                if (!Object.keys(newObject).includes(key))
                    newObject[key] = object[key]

            }

        }

         return newObject

    } // End Function orderObjectProperties()
1 Like

Perhaps you should add it to the flows, so its easier to find.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.