下面是一个JavaScript函数,用于将具有相同属性值的对象合并成新对象:
function mergeObjectsWithSamePropertyValue(arr, property) { let outputArr = []; let values = []; // 获取数组中所有的不同的属性值 for (let i = 0; i < arr.length; i++) { let currentValue = arr[i][property]; if (!values.includes(currentValue)) { values.push(currentValue); } } // 遍历不同属性值的数组并合并相应对象 for (let j = 0; j < values.length; j++) { let currentPropertyValue = values[j]; let mergedObj = arr.filter(item => item[property] === currentPropertyValue) .reduce((result, item) => Object.assign(result, item), {}); outputArr.push(mergedObj); } return outputArr; }
该函数将一个包含对象的数组作为第一个参数,并将要合并的属性名称作为第二个参数。函数将返回一个新的包含合并后的对象的数组。该函数将循环并获取数组中的所有不同属性值,然后将每个该属性值相同的对象合并到一个新对象中,并将该对象添加到新的数组中。