JavaScript 如何修改,删除数组中某个对象的某个属性

一  有几种方法可以用来修改JavaScript数组中对象的属性:

  • 使用Array.map()方法
  • 使用for-of循环
  • 使用具有扩展运算符的Array.map()方法
  • 使用forEach()方法
  • 使用find()方法和解构。
  • 方法1:使用Array.map()方法

    使用map()方法根据指定的函数,通过转换原始数组的每个元素来创建一个新的数组。

  • let employees_data = [
        {
            employee_id: 1,
            employee_name: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
        },
    ];
     
    const modifiedEmployees = employees_data.map(obj => {
        if (obj.employee_id === 2) {
            return { ...obj, employee_name: "rahul" };
        }
        return obj;
    });
     
    console.log(modifiedEmployees);
    

    输出

  • [
      { employee_id: 1, employee_name: 'Aman' },
      { employee_id: 2, employee_name: 'rahul' },
      { employee_id: 3, employee_name: 'Chaitanya' }
    ]
    

    方法2:使用for-of循环

    使用for循环遍历一个包含对象的数组,根据条件查找并修改特定对象的属性。

  • let employees_data = [
        {
            employee_id: 1,
            employee_name: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
        },
    ];
    for (let object of employees_data) {
        if (object.employee_id === 2) {
            object.employee_name = "Anthony";
        }
    }
    console.log("Updated Data: ");
    console.log(employees_data);
    

    输出

  • Updated Data: 
    [
      { employee_id: 1, employee_name: 'Aman' },
      { employee_id: 2, employee_name: 'Anthony' },
      { employee_id: 3, employee_name: 'Chaitanya' }
    ]
    

    方法3:使用Array.map()与扩展运算符

    使用Array.map()创建一个带有扩展运算符的新数组,以修改特定对象的属性。

  • employees_data.map((employee) => {  
        if (employee.employee_id === 2) {  
            return {  
                ...employee,  
                employee_name: "Anthony",  
            };  
        }  
        return employee;  
    });
    

    示例: 在这个示例中,我们将使用Array.map()方法以及spread operator(…)将对象自身展开,以便通过使用先前创建的对象数组来更新现有对象的属性值。

  • let employees_data = [
        {
            employee_id: 1,
            employee_name: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
        },
    ];
    let new_updated_data =
        employees_data.map((employee) => {
            if (employee.employee_id === 2) {
                return {
                    ...employee,
                    employee_name: "Anthony",
                };
            }
            return employee;
        });
    console.log("Updated Data: ");
    console.log(new_updated_data);
    

    输出

  • Updated Data: 
    [
      { employee_id: 1, employee_name: 'Aman' },
      { employee_id: 2, employee_name: 'Anthony' },
      { employee_id: 3, employee_name: 'Chaitanya' }
    ]
    

    方法4:使用 forEach() 方法

    使用 forEach() 方法,遍历对象数组,检查条件并修改匹配对象的属性

  • let employees_data = [
        {
            employee_id: 1,
            employee_name: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
        },
    ];
     
    const modifyProperty = (arr, targetId, newProperty) => {
        arr.forEach(obj => {
            if (obj.employee_id === targetId) {
                obj.employee_name = newProperty;
            }
        });
    };
     
    modifyProperty(employees_data, 2, "Ankit");
    console.log(employees_data);
    
    [
      { employee_id: 1, employee_name: 'Aman' },
      { employee_id: 2, employee_name: 'Ankit' },
      { employee_id: 3, employee_name: 'Chaitanya' }
    ]
    

    方法5:使用find()方法和解构

    使用find()方法搜索具有指定属性值的对象,并使用解构修改属性。

  • let employees_data = [
        {
            employee_id: 1,
            employee_name: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
        },
    ];
     
    const modifyProperty = (arr, targetId, newProperty) => {
        const targetObj = arr.find(obj => obj.employee_id === targetId);
        if (targetObj) {
            targetObj.employee_name = newProperty;
        }
    };
     
    modifyProperty(employees_data, 2, "Kavita");
    console.log(employees_data);
    
    [
      { employee_id: 1, employee_name: 'Aman' },
      { employee_id: 2, employee_name: 'Kavita' },
      { employee_id: 3, employee_name: 'Chaitanya' }
    ]
    

    二  JavaScript删除数组对象中的某个对象里的某个属性

  • 方法1:使用for循环
  • 
    let employ = [
        {
            employid: 1,
            employname: "Aman",
            employage:"15"
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
            employage:"16"
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
            employage:"17"
        },
    ];
           for(var i =0;i<employ.length;i++){
            if(employ[i].employid===1){
               delete employ[i].employage
            }}
    console.log(employ)
    
    输出:
    [
        {
            employid: 1,
            employname: "Aman",
        },
        {
            employee_id: 2,
            employee_name: "Bhargava",
            employage:"16"
        },
        {
            employee_id: 3,
            employee_name: "Chaitanya",
            employage:"17"
        },
    ];

 可以看到上面打印输出第一条对象里的年龄属性删除了

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值