Javascript 如何检查JS中对象数组中是否存在属性

Javascript 如何检查JS中对象数组中是否存在属性,javascript,arrays,object,Javascript,Arrays,Object,我有一个动态创建对象的数组。我将使用下一个示例: const workers = [{ Construction: 500, workers: 0 }, { Debilite: 800, workers: 0 }, { Marketing: 1200, workers: 0 }, { 'Human Resources': 1350, workers: 0 }, ] 如何查找属性名称是否存在并更改其值?

我有一个动态创建对象的数组。我将使用下一个示例:

const workers = [{
    Construction: 500,
    workers: 0
  },
  {
    Debilite: 800,
    workers: 0
  },
  {
    Marketing: 1200,
    workers: 0
  },
  {
    'Human Resources': 1350,
    workers: 0
  },
]
如何查找属性名称是否存在并更改其值?
例如,如果存在“Construction”属性,请将其值从500更改为800,辅助对象应从0更改为1。

在数组上循环,检查每个对象,并根据需要进行更新

您的代码中确实存在两个语法错误:

  • 数组中的最后一项后面不应该有逗号
  • 人力资源
    不是有效的对象键,除非它在引号中
  • const workers=[
    {建筑:500人,工人:0人},
    {Debilite:800,worker:0},
    {营销:1200人,工人:0人},
    
    {“人力资源”:1350,工人:0}/你有一个
    数组
    对象

    因此,您需要遵循两个步骤:

  • 数组中循环(使用
    for
    循环,或使用
    forEach
  • 在循环的每次迭代中使用
    object.hasOwnProperty(key)
  • 在这种情况下,您可以使用以下内容:

    workers.forEach((worker) => {
    
      if (worker.hasOwnProperty('Construction')) {
        worker['Construction'] = 800;
        worker['workers'] = 1;
      }
    });
    
    工作示例:

    const workers=[{
    建筑:500,
    工人:0
    },
    {
    Debilite:800,
    工人:0
    },
    {
    销售:1200,
    工人:0
    },
    {
    “人力资源”:1350,
    工人:0
    },
    ];
    workers.forEach((worker)=>{
    if(worker.hasOwnProperty(“施工”)){
    工人[“施工”]=800;
    工人['workers']=1;
    }
    });
    
    console.log(workers);
    您可以找到对象并分配新值

    函数更新(数组、键、值){
    赋值(array.find(o=>o中的键)|{},值);
    }
    const-workers=[{建筑:500,工人:0},{Debilite:800,工人:0},{营销:1200,工人:0},{‘人力资源:1350,工人:0}];
    更新(工人,'施工',{施工:800,工人:1});
    
    console.log(workers);
    当您说要将其值从500更改为800时,您的意思是仅在其现有值为500时才更改该值?还是您只是以这种方式对其进行措辞以适合您的示例?迭代数组,检查每个对象。Problem=trunt=where?if(workers[index].Construction!==未定义){//do smth}