首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将元素添加到对象中,以及如何在javascript中测试值在复杂对象中的存在?

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

Stack Overflow用户
提问于 2018-06-01 06:06:27
回答 3查看 46关注 0票数 0

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

这个结果是一个错误,我如何在我的对象中添加一个元素呢?

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

代码语言:javascript
复制
var obj2= {{'p1':'app2'}, {'p1':'app1'}}

所以我想测试来自obj1的app2是否存在于obj2中,如果存在,那么也测试这个密钥。我需要的是他们有一些值(应用程序),但不同的键(p1或p2)。我尝试了很多东西,但都不能满足我的需要。

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-01 06:13:36

使用es6计算属性

代码语言:javascript
复制
var obj={[programValue[i]] : deviceValue[i]}

或使用es5

代码语言:javascript
复制
var obj={};
obj[programValue[i]] = deviceValue[i];

同样对于第二个问题:

代码语言:javascript
复制
Object.entries(obj1).some(([key1, value1])=>Object.entries(obj2).some(([key2, value2])=>key1===key2 && value1===value2))
票数 0
EN

Stack Overflow用户

发布于 2018-06-01 06:20:32

对于问题1:

格式是这样的: obj={programValuei : deviceValuei}我这样做是因为我想要这样的格式: obj={'p1':'app1'},这个结果是错误的,我如何在我的对象中添加元素?

如果使用ES6,可以这样做,让obj = {[programValuei]:deviceValuei};

如果programValuei返回'p1‘,deviceValuei返回'app1’,则您的obj将为{'p1':'app1'}

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

var obj = {};obj[[programValuei] = deviceValuei;

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

这种结构不起作用。它必须是一个对象数组。然后,您可以遍历数组或使用index直接访问元素。

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

obj2.p1 // app1

如果您仍然需要一个对象,则需要为每个对象指定一个属性

var obj2 = {one:{'p1':'app1},two:{'p2':'app2}}

obj2.one.p1 //app1

票数 0
EN

Stack Overflow用户

发布于 2018-06-01 06:39:38

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

要向对象添加元素,可以执行object2['someUniqueId'] = 'whatever you like'object2.someUniqueId = 'whatever you like'

我相信你必须把obj1obj2都转换成一个数组:var obj1 = [{'p1':'app1'}, {'p2':'app2'}]; var obj2 = [{'p1':'app1'}, {'p2':'app2'}];,然后你可以尝试用这个例子How to determine if object is in array检查一个对象是否在你的数组obj2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50633452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档