• js 处理数组合并vs对象合并


    前言: 前端开发中,我们会遇到各种数据的需求,但是后端给你返回的数据结构又不是你想要的, 只能自己动手,去组装数据,重新定义数据结构了。

    1. js 数组合并的方法

    常用的应该是 concat 方法.

    示例:   

    1. let  arr1 = [ 1 , 3, 5, 7]
    2. let  arr2 = [ 2, 4 , 6, 8]
    3. let result = arr1.concat(arr2)
    4. // result = [1, 2, 3, 4, 5, 6, 7, 8]

    1-1. 怎么使用map()从数组对象中单独提取某几项

    1. this.tableData_chart = this.tableData.map((res)=>{
    2. return {
    3. 'dataNum': res.dataNum,
    4. 'recTime': res.recTime
    5. }
    6. })

    一个数组返回了很多个变量,我只想从里面截取某几个变量的值,如上图的代码里面。我只想截取到里面的2项变量的所有返回值。

    处理方法:

    1-1-1 、直接保留返回数组里面的某2项的值,如下: 

    1. const a1 = this.tableData
    2. // const a3 = a1.map(({ dataNum, recTime}) => ({ dataNum, recTime}))

    1-1-2、 直接保留返回数组里面某2项的值,顺便改变新数组里面某个变量的名。
     

    1. const a1 = this.tableData
    2. // const a3 = a1.map(({ dataNum, recTime}) => ({ id: dataNum, recTime}))

    1-1-3、 2个数组过滤id相等的obj,保留下来。或者保留id不等的obj。


    1-1-3-1、2个数组过滤id相等的obj,保留

    1. const arr1 = [145, 135, 148]
    2. const arr2 = [
    3. {id: 146, firstname: "dave", lastname: "jones"},
    4. {id: 135, firstname: "mike", lastname: "williams"},
    5. {id: 148, firstname: "bob", lastname: "michaels"}
    6. ]
    7. newArr2 = arr2.filter(x => arr1.some(y => y === x.id))
    8. console.log(newArr2)

    1-1-3-2、2个数组过滤id相等的obj,第2个数组里面与第1个数组里面id !== 的一项保留下来。

    1. // 第2个数组里面与第1个数组里面id !== 的一项保留下来
    2. const arr1 = [145, 135, 148]
    3. const arr2 = [
    4. {id: 146, firstname: "dave", lastname: "jones"},
    5. {id: 135, firstname: "mike", lastname: "williams"},
    6. {id: 148, firstname: "bob", lastname: "michaels"}
    7. ]
    8. newArr2 = arr2.filter(x => !arr1.some(y => y === x.id))
    9. console.log(newArr2)

    1-1-3-3、 2个对象数组过滤
     

    1. const arr1 = [
    2. {id: "145", firstname: "dave", lastname: "jones"},
    3. {id: "135", firstname: "mike",lastname: "williams"},
    4. {id: "148", firstname: "bob",lastname: "michaels"}
    5. ]
    6. const arr2 = [
    7. {id: "146", firstname: "dave", lastname: "jones"},
    8. {id: "135", firstname: "mike", lastname: "williams"},
    9. {id: "148", firstname: "bob", lastname: "michaels"}
    10. ],
    11. newArr1 = arr1.filter(x => !arr2.some(y => y.id === x.id)),
    12. newArr2 = arr2.filter(x => !arr1.some(y => y.id === x.id));
    13. console.log(newArr1)// [{id: '145', firstname: 'dave', lastname: 'jones'}]
    14. console.log(newArr2)// [{id: '146', firstname: 'dave', lastname: 'jones'}]


    2. js 对象的合并方法

    可以使用 Object.assign 方法来合并两个对象。Object.assign 方法接受一个目标对象和一个或多个源对象作为参数,将源对象的属性复制到目标对象中,并返回目标对象。如果有重复的属性名,则后面的属性会覆盖前面的。

    1. const obj1 = { a: 1, b: 2 }
    2. const obj2 = { b: 3, c: 4 }
    3. const result = Object.assign({}, obj1, obj2)
    4. console.log(result) // 输出:{ a: 1, b: 3, c: 4 }

    上述代码中,我们首先定义了两个对象 obj1 和 obj2,然后使用 Object.assign 方法将它们合并到一个新对象 result 中,并打印出了合并后的结果。注意,这里通过传递一个空对象 {} 作为第一个参数来创建了一个新的对象作为目标对象。这是因为 Object.assign 方法会修改第一个参数的值,如果我们不想修改原始的对象,就需要传递一个新的空对象作为目标对象。
     

  • 相关阅读:
    锐捷MSTP实验配置
    《刷新:重新发现商业与未来》~语句摘录
    Pyecharts一文速学-绘制桑基图详解+Python代码
    分析java.lang.IncompatibleClassChangeError
    数据结构六:线性表之顺序栈的设计
    低代码:数字化转型趋势下的快速开发方式
    如何清理ogg日志文件
    推荐几款火爆的Python在线编辑器
    DevEco Studio设置Nodejs提示路径只能包含英文、数字、下划线等
    LeetCode-907. 子数组的最小值之和【单调栈,数组】
  • 原文地址:https://blog.csdn.net/qq_41646249/article/details/132685509