如何将元素添加到对象中,以及如何在javascript中测试复杂对象中是否存在值?

如何将元素添加到对象中,以及如何在javascript中测试复杂对象中是否存在值?,javascript,object,Javascript,Object,我是JavaScript新手,我有几个问题。首先,我将通过两个对象来计算它们之间的差异。所以,我有我的循环和一堆if语句用于测试。我要做的是,如果我找到了我要寻找的元素,我需要将它添加到一个新对象中,而我的对象是一个键和值。格式如下: obj={programValue[i]:deviceValue[i]}我这样做是因为我想要这种格式:obj={'p1':'app1'} 这将导致一个错误,如何在对象中添加元素 我的第二个问题是如何遍历包含其他对象本身的对象,并测试包含其他对象的另一个对象的键或值

我是JavaScript新手,我有几个问题。首先,我将通过两个对象来计算它们之间的差异。所以,我有我的循环和一堆if语句用于测试。我要做的是,如果我找到了我要寻找的元素,我需要将它添加到一个新对象中,而我的对象是一个键和值。格式如下:
obj={programValue[i]:deviceValue[i]}
我这样做是因为我想要这种格式:
obj={'p1':'app1'}

这将导致一个错误,如何在对象中添加元素

我的第二个问题是如何遍历包含其他对象本身的对象,并测试包含其他对象的另一个对象的键或值是否存在。 下面是一个例子来解释:
var obj1={{'p1':'app1'},{'p2':'app2'}

var obj2= {{'p1':'app2'}, {'p1':'app1'}}
因此,我想测试obj1中的
app2
是否存在于obj2中,如果存在,那么也测试该键。我需要的是它们有一些值(app),但键不同(p1或p2)。 我尝试了很多东西,但没有满足我的需要


谢谢,

使用es6计算属性

var obj={[programValue[i]] : deviceValue[i]}
还是es5

var obj={};
obj[programValue[i]] = deviceValue[i];
关于第二个问题:

Object.entries(obj1).some(([key1, value1])=>Object.entries(obj2).some(([key2, value2])=>key1===key2 && value1===value2))
关于问题1:

格式如下:obj={programValue[i]:deviceValue[i]}我这样做是因为我需要这种格式:obj={'p1':'app1'},结果是一个错误,我如何在我的对象中添加元素

如果使用ES6,您可以这样做 设obj={[programValue[i]]:deviceValue[i]}

如果programValue[i]返回“p1”,而deviceValue[i]返回“app1” 那么您的obj将是{'p1':'app1'}

如果不使用ES6,则必须首先声明空对象,然后设置属性

var obj={[programValue[i]] : deviceValue[i]}
var obj={}; obj[[programValue[i]]=deviceValue[i]

关于你的第二个问题, var obj2={{'p1':'app2'},{'p1':'app1'}

该结构不起作用。它必须是一个对象数组。然后,您可以迭代数组或使用索引直接访问元素

var obj2=[{'p1':'app1'},{'p2':'app2'}]

obj2[0]。p1//app1

如果仍然需要对象,则每个对象都需要一个属性

var obj2={1:{'p1':'app1},2:{'p2':'app2}


obj2.one.p1//app1

var obj2={{'p1':'app2'},{'p1':'app1'}
不是有效语法。正确的对象语法应该是
var obj2={'p1':'app2',p2':'app1'}

要向对象添加元素,您可以执行以下操作:
object2['someUniqueId']='随意'
object2.someUniqueId='随意'


我认为您必须将
obj1
obj2
都转换为一个数组:
var obj1=[{'p1':'app1'},{'p2':'app2'}];
var obj2=[{'p1':'app1'},{'p2':'app2'};
,然后您可以尝试检查数组中是否有对象
obj2
不是有效的javascript对象如果您在初始化过程中试图使用动态属性名,则需要使用正确的属性名,如果您的环境支持itOk,谢谢@PatrickEvans,可以这样做。@Dom为什么?我们不能有对象对象对象吗?当然可以。但是对象由
键:值
对组成。
{p1':'app2'}
缺少外部对象的键。也许您想要一个对象数组?无论哪种方式,请每个问题只问一个问题。我使用es5,但当我尝试该方法时,它只添加一个元素。因为我将其放入循环中,所以它可以迭代并将元素添加到我的对象中。您知道为什么吗?谢谢!当我尝试objec时t2.programValue[i]=deviceValue[i]它不起作用,并表示无法读取未定义的属性“0”,因为在该时间我的i=0如果i=0,您必须确保
object2.programValue[i]
deviceValue[i]
都是数组。两者都必须按如下方式构造
var deviceValue=[“value”,“value2”];
object2.programValue=[]
获取等于“value”的deviceValue[0]并将其放入programValue[0]