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}