【问题标题】:Jquery/javascript creating objectJquery/javascript 创建对象
【发布时间】:2014-04-07 15:48:57
【问题描述】:

所以,我想使用 Jquery(半自动)创建一个对象。

我将举一个我想做的例子,而不是在这里发布我的所有代码:

var myobject = {
   'name1': {
     'coord1':true,
     'coord2':false,
     'coord3':false,
   },
   'name2': {
     'coord4':true,
    'coord5':false,
    'coord6':false,
  }
}

1)我首先要检查'nameX'是否已经在我的对象中,如果是,继续步骤2,如果没有,我想添加名称,并且coordX的值为true或false。

2) 如果 'nameX' 在数组中,我想检查 i 'coordX' 在数组中。如果是,我需要检查对应的值(真或假)是否相同,如果不一样,替换它。如果 'CoordX' 不在对象中,我想用相应的值添加它。

例如:

var mynewname = 'name3';
var mynewcoord = 'coord5';
var mynewvalue = 'true';
var mynewname2 = 'name1';
var mynewcoord2 = 'coord4';
var mynewvalue = 'false';

使用对象检查这些值时应该给出:

var myobject = {
  'name1': {'
    coord1':true,
    'coord2':false,
    'coord3':false,
    'coord4':false
  },
  'name2': {
    'coord4':true,
    'coord5':false,
    'coord6':false
  },
  'name3':{
    'coord5':true
  }
}

我希望有人可以帮助我解决这个问题。谢谢

【问题讨论】:

  • 1.这与 jQuery 无关。 2. 那里没有数组,它们是对象

标签: javascript jquery object


【解决方案1】:

要确定对象是否包含具有给定名称的属性,您有多种选择。

您可以将in operator 与字符串属性名称一起使用:

if ("nameX" in myobject) {
    // The object referenced by `myobject` (or its prototype)
    // has its own property called "nameX"
}
else {
    // It doesn't
}

in 将检查对象及其原型。这对于您使用的简单对象可能无关紧要。

或者你可以使用hasOwnProperty,它只检查对象而不检查它的原型:

if (myobject.hasOwnProperty("nameX")) {
    // The object referenced by `myobject` has its own property called "nameX"
}
else {
    // It doesn't
}

因此,例如,如果您想查看 name1 是否在 myobject 中,如果不是,请添加引用空白对象的 name1,您可以这样做:

if (!("name1" in myobject)) {
    myobject.name1 = {}; // No, add it and give it a blank object as its value
}

对于您从myobject.nameX 引用的对象的coordX 属性也是如此。

【讨论】:

  • 假设我想检查某个名称中的某个 coordX,我可以使用 if ("coordX" in myobject.name)) {} 吗?
  • @user3117628:假设namemyobject 的属性,它指的是一个对象,是的。例如,如果myobject.name1 引用的对象有一个名为coord2 的属性,那么"coord2" in myobject.name1 就是true
  • 谢谢。我会在 4 分钟内接受你的回答 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多