JS中关于数组和对象数组的合并
对象合并的方法
1. 拓展运算符( … )
对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。
使用拓展运算符( … )分为对象数组和普通数组两种情况。
- 对象数组
let obj1 = {
name: '陈伟霆',
gender: '男',
hobby: '唱歌'
};
let obj2 = {
name: '陈伟霆',
gender: '男',
hobby: '跳舞',
nationality: '中国'
};
let obj = {...obj1, ...obj2};
console.log(obj); // { name: '陈伟霆', gender: '男', hobby: '跳舞', nationality: '中国' }
由图可见:
同名属性:合并,后者属性值(obj2)对前者(obj1)进行覆盖
不同名属性:直接合并,属性值不变
2. Object.assign()
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象
用法和拓展运算符差不多
let obj = Object.assign({}, obj1, obj2);
console.log(obj); // { name: '陈伟霆', gender: '男', hobby: '跳舞', nationality: '中国' }
数组合并
1. concat()
1 var arr1 = [1, 2, 3];
2 var arr2 = [4, 5, 6];
3 var arr3 = arr1.concat(arr2);
4 console.log(arr3); // [1, 2, 3, 4, 5, 6]
在我程序的代码中,使用这个方法可以对两个类型为Object的对象数组进行拼接,不会对同名属性进行覆盖
2.array.push()
const heroes = ['Batman'];
heroes.push('Superman');
heroes; // ['Batman', 'Superman']
Array的push方法,是直接进行压入的形式
3.拓展运算符( … )
var newArray = [...array,...elements]
console.log(newArray); // ["a", "b", 0, 1, 2]