JavaScript对象合并
JavaScript对象合并是把多个对象合并成一个对象的过程,它有四种方式:
- Object.assign():使用Object.assign()方法可以把多个对象合并成一个对象,它接受两个参数,第一个参数是目标对象,第二个及以后的参数是源对象,源对象的属性会覆盖目标对象的属性,例如:
let obj1 = {name:"张三",age:18}; let obj2 = {age:20,hobby:"篮球"}; let obj = Object.assign(obj1,obj2); console.log(obj); // {name:"张三",age:20,hobby:"篮球"}
- Object.keys():使用Object.keys()方法可以把多个对象的属性合并成一个对象,它接受一个参数,是源对象,例如:
let obj1 = {name:"张三",age:18}; let obj2 = {age:20,hobby:"篮球"}; let obj = {}; Object.keys(obj1).forEach(key=>{ obj[key] = obj1[key]; }); Object.keys(obj2).forEach(key=>{ obj[key] = obj2[key]; }); console.log(obj); // {name:"张三",age:20,hobby:"篮球"}
- Object.entries():使用Object.entries()方法可以把多个对象的属性值合并成一个对象,它接受一个参数,是源对象,例如:
let obj1 = {name:"张三",age:18}; let obj2 = {age:20,hobby:"篮球"}; let obj = {}; Object.entries(obj1).forEach(([key,value])=>{ obj[key] = value; }); Object.entries(obj2).forEach(([key,value])=>{ obj[key] = value; }); console.log(obj); // {name:"张三",age:20,hobby:"篮球"}
- for...in...:使用for...in...循环可以把多个对象的属性合并成一个对象,它接受一个参数,是源对象,例如:
let obj1 = {name:"张三",age:18}; let obj2 = {age:20,hobby:"篮球"}; let obj = {}; for(let key in obj1){ obj[key] = obj1[key]; } for(let key in obj2){ obj[key] = obj2[key]; } console.log(obj); // {name:"张三",age:20,hobby:"篮球"}
数组合并
数组合并是把多个数组合并成一个数组的过程,它有四种方式:
- Array.concat():使用Array.concat()方法可以把多个数组合并成一个数组,它接受一个参数,是源数组,例如:
let arr1 = [1,2,3]; let arr2 = [4,5,6]; let arr = arr1.concat(arr2); console.log(arr); // [1,2,3,4,5,6]
- Array.push():使用Array.push()方法可以把多个数组的元素合并成一个数组,它接受一个参数,是源数组,例如:
let arr1 = [1,2,3]; let arr2 = [4,5,6]; let arr = []; arr1.forEach(item=>{ arr.push(item); }); arr2.forEach(item=>{ arr.push(item); }); console.log(arr); // [1,2,3,4,5,6]
- Array.unshift():使用Array.unshift()方法可以把多个数组的元素合并成一个数组,它接受一个参数,是源数组,例如:
let arr1 = [1,2,3]; let arr2 = [4,5,6]; let arr = []; arr1.forEach(item=>{ arr.unshift(item); }); arr2.forEach(item=>{ arr.unshift(item); }); console.log(arr); // [6,5,4,3,2,1]
- Array.splice():使用Array.splice()方法可以把多个数组的元素合并成一个数组,它接受一个参数,是源数组,例如:
let arr1 = [1,2,3]; let arr2 = [4,5,6]; let arr = []; arr1.forEach(item=>{ arr.splice(arr.length,0,item); }); arr2.forEach