How can you merge objects in array of objects?

前端 未结 12 1385
小蘑菇
小蘑菇 2020-12-06 17:32

I\'m looking for the best solution to merge all objects in one array

const arrayOfObjects = [
 {name: \'Fred\', surname: \'Shultz\'}, {name: \'Anne\', surnam         


        
12条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-06 18:24

    with pure javascript

    var myInput = [{ a: 1, b: 2, c: 3 }, { a: 2, b: 4, c: 6 }, { a: 7, b: 8, c: 9 }];
        var myArray = [];
        var myObject = {};
        function isArray(a){
            return Object.prototype.toString.call(a) === '[object Array]' ;
        }
        for (var i = 0; i < myInput.length; i++) {
            for (var key in myInput[i]) {
                if (myInput[i].hasOwnProperty(key)) {
                    if (myArray.indexOf(key) === -1) {
                        myArray.push(key);
                        myObject[key] = myInput[i][key];
                    } else {
                        if (myObject.hasOwnProperty(key)) {
                            newary = [];
                            if (isArray(myObject[key])) {
                                for (var i = 0; i < myObject[key].length; i++) {
                                    newary.push(myObject[key][i]);
                                }
                            } else {
                                newary.push(myObject[key]);
                            }
                            newary.push(myInput[i][key]);
                            myObject[key] = newary;
                        }
                    }
                }
            }
        }
        console.log(myObject);

提交回复
热议问题