一、根據數組對象中某一key值,合并相同key值的字段,到同一個數組對象中,組成新的數組
1.原數組:
var array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, age: 25 },
{ id: 3, name: 'Charlie', age: 30 }
];
2.合并后數組:
var array = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie', age: 30 }
];
3.實現方法:
// 原始數組
var array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, age: 25 },
{ id: 3, name: 'Charlie', age: 30 }
];
// 使用 reduce 方法合并具有相同屬性的對象
var mergedArray = array.reduce(function(result, obj) {
var target = result.find(function(item) {
return item.id === obj.id;
});
if (target) {
Object.assign(target, obj);
} else {
result.push(obj);
}
return result;
}, []);
console.log(mergedArray);
4.測試:
二、根據數組對象中某一key值,合并相同key值的對象,到同一個對象中,組成新的數組
1.原數組:
let list = [
{
name: "張三",
gender: "張",
age: "20"
},
{
name: "李四",
gender: "李",
age: "25"
},
{
name: "王五",
gender: "王",
age: "30"
},
{
name: "張飛",
gender: "張",
age: "20"
},
{
name: "李紅",
gender: "李",
age: "22"
}
]
2.合并后數組:
let list = [
{
gender: "張",
{
name: "張三",
gender: "張",
age: "20"
},
{
name: "張飛",
gender: "張",
age: "20"
}
},
{
gender: "李",
{
name: "李四",
gender: "李",
age: "25"
},
{
name: "李紅",
gender: "李",
age: "22"
}
},
{
gender: "王",
{
name: "王五",
gender: "王",
age: "30"
},
}
]
3.實現方法一:
let tempArr = [];
let Data = [];
for (let i = 0; i < list.length; i++) {
if (tempArr.indexOf(list[i].gender) === -1) {
Data.push({
gender: list[i].gender,
dataInfo: [list[i]]
});
tempArr.push(list[i].gender);
} else {
for (let j = 0; j < Data.length; j++) {
if (Data[j].gender== list[i].gender) {
Data[j].dataInfo.push(list[i]);
break;
}
}
}
}
console.log(Data);
測試:
文章來源:http://www.zghlxwxcb.cn/news/detail-713986.html
4.實現方法二:
let dataInfo = {};
list.forEach((item, index) => {
let { gender } = item;
if (!dataInfo[gender]) {
dataInfo[gender] = {
gender,
child: []
}
}
dataInfo[gender].child.push(item);
});
let newList = Object.values(dataInfo); // list 轉換成功的數據
console.log(newList)
測試:
文章來源地址http://www.zghlxwxcb.cn/news/detail-713986.html
到了這里,關于js合并數組對象(將數組中具有相同屬性對象合并到一起,組成一個新的數組)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!