相关疑难解决方法(0)

如何连接(变量+对象键名称)以点表示法获取对象值

假设我有一个像这样的JSON对象:

var myObj = {
    'question1': {
        'option1': 'foo',
        'option2': 'bar',
        'option3': 'baz'
    },
    'question2': {
        ...
    },
    'question3': {
        ...
    }
};
Run Code Online (Sandbox Code Playgroud)

由于它的子节点中的键总是有一个数字,我想做一个循环并将循环的索引连接到对象键,并用点表示法获取值...

所以,我想要得到这些值,我需要做一些像这样的事情:

myObj.'question'+i
Run Code Online (Sandbox Code Playgroud)

我怎么能连接正确?

javascript loops

4
推荐指数
1
解决办法
4253
查看次数

枚举对象作为字典键

我想在JavaScript中使用所谓的"枚举"对象作为字典键(实际上,它也是字典AFAIK).

这不起作用:

    var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};

    var statesDict =  {
      State.ACTIVE : {color:0x00ff00}
      State.INACTIVE: {color:0x000000}
    };
Run Code Online (Sandbox Code Playgroud)

虽然这个做了:

   var State ={DEFAULT:0,ACTIVE:1 ,INACTIVE:2,ALERT:3};

    var statesDict =  {
      1: {color:0x00ff00}
      2: {color:0x000000}
    };
Run Code Online (Sandbox Code Playgroud)

为什么?是不State.{prop name}应该被它的价值取代?

javascript

3
推荐指数
1
解决办法
1629
查看次数

尝试以变量为键查询猫鼬

如何使用变量作为我要搜索的键来查询 mongodb?

数据:

const schedule = {
  day0: [10, 1440],
  day1: [10, 1440],
  day3: [10, 1440],
  day6: [10, 1440],
}
Run Code Online (Sandbox Code Playgroud)

查询

User.find({ `schedule.${varHere}` { $exists: true}}, (err, users) => {
  console.log(users)
})
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js mongoose-schema

2
推荐指数
1
解决办法
2405
查看次数

如何使用变量变量创建纯javascript .css()函数

我一直在研究类似jQuery的JavaScript库.我想添加的下一个.css()函数是一个函数.

像这样的东西:

function css(elem,name,value){
   elem.style.name = value;
   //   >>>>   ^   <<<<<<
   // needed variable variable
}
Run Code Online (Sandbox Code Playgroud)

谁知道我应该怎么做?我不知所措,过去一小时我一直是Goggling的建议,我还没有找到解决方案.

有任何想法吗?

谢谢.

html javascript css jquery

1
推荐指数
1
解决办法
230
查看次数

在 for 循环中设置动态键和值

这似乎是一件基本的事情,但我无法找到我哪里出错了。

我想以这种键值格式输出。

[{"10":"bob"},{"20":"Tom"},{"30":"Larry"}]
Run Code Online (Sandbox Code Playgroud)

我在做什么 -

var list = [];
var names = ["Bob","Tom","Larry"];
var ages =  ["10", "20", "30"];
for(var i=0; i<names.length; i++){
    list.push({ages[i] : names[i]})
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了意外的令牌错误。请指导我哪里出错了?

javascript object key-value javascript-objects

1
推荐指数
2
解决办法
3125
查看次数

JavaScript:不使用`eval`将平面数组转换为树状结构

我有这样的数组["aaa","aaa","bbb","ccc"].

我需要的是将它转换为这样的形式:

{ "aaa" :
  { "aaa" :
    { "bbb" :
      { "ccc" : 1 }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道eval可以做到这一点,但有没有更漂亮的解决方案?

感谢您阅读我的帖子.

javascript arrays javascript-objects

1
推荐指数
1
解决办法
30
查看次数

通过函数在JavaScript中更新对象值

在JavaScript中我试图通过函数更新对象值,通过该函数我将对象属性传递给更新.

但是,这不起作用 - 我可以看到原因,但不知道如何对抗它!

myObject = {"testItem": "testValue"};
console.log(myObject.testItem);

function updateSomeValue(objectItem, newValue){
    myObject.objectItem = newValue;
}

updateSomeValue('testItem', 'newValue');
console.log(myObject.testItem);
Run Code Online (Sandbox Code Playgroud)

现在,我可以看到这里的问题是,在函数中,myObject.objectItem期望一个名为objectItem的对象中的项 - 它不会将它转换为testItem.

我该怎么做呢?

javascript

0
推荐指数
1
解决办法
105
查看次数

如何创建可互换的指令?

document.body.style.backgroundColor="#F00";
Run Code Online (Sandbox Code Playgroud)

此语句将主体背景颜色设置为红色.

在我的原始代码中,我有一个函数,它通过标记名称将元素分配给全局变量element.我在调用此函数后发现我可以这样做:element.style.backgroundColor="#F00";

但是,似乎没有任何方法可以替代声明的属性部分.下面我已经提出了最明显的方法,尽管我也尝试将参数分配给变量和各种报价组合.

function assignStyle(value) {
  document.body.style.backgroundColor = value;
}

function attemptStyle(property,value) {
  document.body.style.property = value;
}
Run Code Online (Sandbox Code Playgroud)
button { font-family: monospace; }
Run Code Online (Sandbox Code Playgroud)
<button onmouseover="assignStyle('#131519');" onmouseout="assignStyle('#FFF');">
  function assignStyle(value){}
</button><br />

<button onmouseover="attemptStyle('backgroundColor','#137619');" onmouseout="attemptStyle('backgroundColor','#FFF');">
function attemptStyle(property,value){}
</button>
Run Code Online (Sandbox Code Playgroud)

编辑:这个问题不是重复如何使用变量作为名称向JavaScript对象添加属性?.这个问题包含jQuery,包括我自己在内的很多人都知道.我的问题是基本的JavaScript.另外,我想知道如何向元素添加属性,因此通过将参数传递给函数参数.就我而言,变量进一步使问题复杂化.

html javascript css

0
推荐指数
1
解决办法
85
查看次数

是否可以在javascript中的对象中创建动态键?

例如,我要求用户输入一个输入,然后输入"key",我将值保存在一个名为INPUT的变量上.然后我想用这样创建一个对象.

var obj = {INPUT:"其他一些输入"}; 其中INPUT =键

我知道我可以添加更多值,但我需要提前知道密钥才能添加它.我可以在不知道它的情况下添加新密钥吗?

javascript object

0
推荐指数
1
解决办法
55
查看次数

如何使用动态密钥格式化json?

  var data= [{_id: "5a93cbd49ae761a4015f6346", nombre: "Chicago - Missouri", longitud: "-94.6807924", latitud: "38.287606"},
{ _id: "5a93ca539ae761a4015f6344", nombre: "Boston - Central Falss", longitud: "-71.4111895", latitud: "41.8902971"},
{ _id: "5a93ccbf9ae761a4015f6349", nombre: "Houston - Dallas", longitud: "-97.0117365", latitud: "32.8209296"}]

var d=[];
for(var i in data){
    d.push({ data[i].nombre:data[i]["_id"] })
}
Run Code Online (Sandbox Code Playgroud)

我想要一个带结构的json

{ "nombre":"_id" }
Run Code Online (Sandbox Code Playgroud)

例如:

 { "Chicago - Missouri":"5a93cbd49ae761a4015f6346"}
 { "Boston - Central Falss- Missouri": "5a93ca539ae761a4015f6344" }4
Run Code Online (Sandbox Code Playgroud)

我的错是什么?

谢谢

javascript json

0
推荐指数
1
解决办法
54
查看次数

如何使用变量的值作为对象的属性?

在下面的示例中,对象似乎不知道哪个类别是变量,因此它用作字符串:

var categoria = "Carros";
var obj       = {
    categorias: {}
};
obj.categorias = {...obj.categorias, categoria: {}}
console.log(obj.categorias)
Run Code Online (Sandbox Code Playgroud)

我希望类别属性被命名为“汽车”而不是类别。我尝试了下面的方法,但它返回模板字符串错误:

var categoria = "Carros";
var obj       = {
    categorias: {}
};
obj.categorias = {...obj.categorias, `${categoria}`: {}}
Run Code Online (Sandbox Code Playgroud)

javascript json

0
推荐指数
1
解决办法
36
查看次数