相关疑难解决方法(0)

使用变量动态访问对象属性

我正在尝试使用动态名称访问对象的属性.这可能吗?

const something = { bar: "Foobar!" };
const foo = 'bar';
something.foo; // The idea is to access something.bar, getting "Foobar!"
Run Code Online (Sandbox Code Playgroud)

javascript properties object

654
推荐指数
10
解决办法
31万
查看次数

JavaScript属性访问:点符号与括号?

除了显而易见的事实,即第一种形式可以使用变量而不仅仅是字符串文字,是否有任何理由使用其中一种,如果是这样,在哪种情况下呢?

在代码中:

// Given:
var foo = {'bar': 'baz'};

// Then
var x = foo['bar'];

// vs. 
var x = foo.bar;
Run Code Online (Sandbox Code Playgroud)

上下文:我编写了一个生成这些表达式的代码生成器,我想知道哪个更好.

javascript syntax

380
推荐指数
10
解决办法
14万
查看次数

如何在JavaScript对象文字中使用变量作为键?

为什么以下工作?

<something>.stop().animate(
    { 'top' : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)

虽然这不起作用:

var thetop = 'top';
<something>.stop().animate(
    { thetop : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)

为了使它更清晰:目前我无法将CSS属性作为变量传递给animate函数.

javascript variables jquery properties object-literal

345
推荐指数
7
解决办法
13万
查看次数

如何在JavaScript中从变量值创建对象属性?

我想为'myObj'添加一个新属性,将其命名为'string1'并赋予它'string2'的值,但是当我这样做时它会返回'undefined:

var myObj = new Object;
var a = 'string1';
var b = 'string2';
myObj.a = b;

alert(myObj.string1); //Returns 'undefined'
alert(myObj.a); //Returns 'string2'
Run Code Online (Sandbox Code Playgroud)

换句话说:如何创建一个对象属性并为其赋予存储在变量中的名称,而不是变量本身的名称?

javascript properties object

326
推荐指数
7
解决办法
32万
查看次数

如何创建要添加到JavaScript对象变量的动态密钥

我正在尝试这样的事情,但这个例子不起作用.

jsObj = {};

for (var i = 1; i <= 10; i++) {
    jsObj{'key' + i} = 'example ' + 1;
}
Run Code Online (Sandbox Code Playgroud)

如何制作这样的动态密钥呢?

javascript object

196
推荐指数
1
解决办法
22万
查看次数

动态设置嵌套对象的属性

我有一个对象,可以是任意数量的级别,可以有任何现有的属性.例如:

var obj = {
    db: {
        mongodb: {
            host: 'localhost'
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

在那我想设置(或覆盖)属性,如下所示:

set('db.mongodb.user', 'root');
// or:
set('foo.bar', 'baz');
Run Code Online (Sandbox Code Playgroud)

属性字符串可以有任何深度,值可以是任何类型/东西.
如果属性键已存在,则不需要合并作为值的对象和数组.

上一个示例将生成以下对象:

var obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    },
    foo: {
        bar: baz
    }
};
Run Code Online (Sandbox Code Playgroud)

我怎么才能实现这样的功能呢?

javascript ecmascript-5

59
推荐指数
9
解决办法
5万
查看次数

46
推荐指数
3
解决办法
6万
查看次数

JavaScript - 创建对象并使用变量作为属性名称?

我正在创建自己的对象:

gridObject = new Object();
Run Code Online (Sandbox Code Playgroud)

然后我使用jquery来拉取列表项标签的内容,这些标签本身就是用来填充的

具有特定类名的标签:

<li row="1"><p class="department" rowitem="department">Photography</p>...</li>
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码拉他们:

//make object from results
gridObject = new Object();

//get all the rows
var rowlist = $('li[row]');

for(var r=0; r<rowlist.length; r++) {

    //make gridObject row element here

    //get the row content
    var thisrow = $(rowlist[r]).html();

    //get all the p tags
    var rowitems = $(thisrow + 'p.[rowitem]');

    //get field name
    for(var ri=0; ri<rowitems.length; ri++) {
    if (r < 2) { //this is temporary just for testing
         var fieldname = $(rowitems[ri]).attr('rowitem'); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery properties object

42
推荐指数
1
解决办法
5万
查看次数

有没有办法使用node-mongodb-native的动态密钥?

有没有办法在node-mongodb-native驱动程序中使用动态密钥?我的意思是让变量保持键而不是直接使用键.

正如通常会这样做的时候:

db.createCollection('col', function(err, col){
    col.insert({'_id':'wak3ajakar00'});
}
Run Code Online (Sandbox Code Playgroud)

改为:

db.createCollection('col', function(err, col){
    var ID = '_id';
    col.insert({ID:'wak3ajakar00'});
}
Run Code Online (Sandbox Code Playgroud)

当我运行后面的代码时,我最终会在集合db.col中找到一个文档ID,除了标准创建之外还调用了一个键_id,而不是只有一个_id带有值的键wak3ajakar00.这让我相信实际上不可能直接这样做.

相反,我现在只是创建我想提前插入的文档,如下所示:

db.createCollection('col', function(err, col){
    var ID = 'wak3ajakar00';
    var key = '_id';
    insertion = {}
    insertion[key] = ID;
    col.insert(insertion);
}
Run Code Online (Sandbox Code Playgroud)

这与我想要的完全一样,但我只是想知道是否有更好的方法来解决这个问题.JavaScript,NodeJS和MongoDB对我来说都是新手,所以我觉得我很容易丢失一些东西.如果没有,有没有更简洁的方法在JavaScript中编写上述代码?

最好的,谢谢,
萨米

javascript mongodb node.js

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

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

假设我有一个像这样的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
查看次数