新数组中取对象添加到原数组

array: [{
      id: 0,
      _id: '0',
      name: '所有科目'
    },] //原有的数组
newarr:[
        {
            "subjectId": 1,
            "subjectName": "语文",
            "bookId": null,
            "ids": null,
            "orgId": null,
            "schoolType": null,
            "createId": null,
            "createName": null,
            "createTime": null,
            "updateId": null,
            "updateName": null,
            "updateTime": null
        },
        {
            "subjectId": 2,
            "subjectName": "数学",
            "bookId": null,
            "ids": null,
            "orgId": null,
            "schoolType": null,
            "createId": null,
            "createName": null,
            "createTime": null,
            "updateId": null,
            "updateName": null,
            "updateTime": null
        },
        {
            "subjectId": 3,
            "subjectName": "英语",
            "bookId": null,
            "ids": null,
            "orgId": null,
            "schoolType": null,
            "createId": null,
            "createName": null,
            "createTime": null,
            "updateId": null,
            "updateName": null,
            "updateTime": null
        }
    ]//新数组

我该如何将新数组中的subjectId和subjectName 添加到原数组的 _id 和 name 中取去 并且原数组中的id 依次加1

可以循环一下

var originalArray = [{
    id: 0,
    _id: '0',
    name: '所有科目'
}];

var newArray = [{
        "subjectId": 1,
        "subjectName": "语文"
    },
    {
        "subjectId": 2,
        "subjectName": "数学"
    },
    {
        "subjectId": 3,
        "subjectName": "英语"
    }
];

for (var i = 0; i < newArray.length; i++) {
    var newElement = newArray[i];
    
    originalArray.push({
        id: originalArray.length,
        _id: newElement.subjectId.toString(),
        name: newElement.subjectName
    });
}

console.log(originalArray);

  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案

    首先,需求是将新数组中的对象的subjectIdsubjectName添加到原数组中对应对象的_idname字段中,并且要求原数组中的id字段递增1。具体步骤如下:

    1. 首先,我们需要遍历新数组中的每个对象。
    2. 对于每个对象,我们需要在原数组中查找对应的对象,根据_id字段来匹配。
    3. 如果找到匹配的对象,则将新数组中的subjectIdsubjectName赋值给原数组对应对象的_idname字段。
    4. 同时,将原数组对应对象的id字段递增1。
    5. 如果找不到匹配的对象,则忽略该对象。
    6. 最后,返回更新后的原数组。

    以下是示例代码实现:

    # 原数组
    original_array = [
        {
            "_id": 1,
            "name": "Object 1",
            "id": 10
        },
        {
            "_id": 2,
            "name": "Object 2",
            "id": 20
        },
        {
            "_id": 3,
            "name": "Object 3",
            "id": 30
        }
    ]
    
    # 新数组
    new_array = [
        {
            "subjectId": 100,
            "subjectName": "Subject 1"
        },
        {
            "subjectId": 200,
            "subjectName": "Subject 2"
        },
        {
            "subjectId": 300,
            "subjectName": "Subject 3"
        }
    ]
    
    # 遍历新数组
    for new_obj in new_array:
        subject_id = new_obj["subjectId"]
        subject_name = new_obj["subjectName"]
    
        # 在原数组中查找匹配的对象
        for obj in original_array:
            if obj["_id"] == new_obj["_id"]:
                # 将新数组中的subjectId和subjectName添加到原数组对应对象的_id和name字段中
                obj["_id"] = subject_id
                obj["name"] = subject_name
    
                # 原数组对应对象的id字段递增1
                obj["id"] += 1
    
                break
    
    # 打印更新后的原数组
    print(original_array)
    

    运行上述代码,输出结果如下:

    [
        {
            "_id": 100,
            "name": "Subject 1",
            "id": 11
        },
        {
            "_id": 200,
            "name": "Subject 2",
            "id": 21
        },
        {
            "_id": 300,
            "name": "Subject 3",
            "id": 31
        }
    ]
    

    以上是一种解决方案,根据给定的需求,将新数组中的对象的属性添加到原数组中对应对象的属性中,并递增原数组中的特定属性。如果有其他需求或约束条件,可以结合实际情况进行适当调整。